spring-boot 注入bean

spring-boot 注入bean

配置

/**
 * @description Spring 工具类
 * @author 李铭浩
 * @date 2017年8月16日
 * @porject spring-boot-helloworld
 */
//@Component
public class SpringUtil implements ApplicationContextAware {

	private static ApplicationContext applicationContext = null;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		if (SpringUtil.applicationContext == null) {
			SpringUtil.applicationContext = applicationContext;
		}
	}
	
    /**
     * @description 获取applicationContext
     * @author 李铭浩
     * @date 2017年8月16日
     * @return
     */
    public static ApplicationContext getApplicationContext() {
       return applicationContext;
    }
    
    /**
     * @description 通过class获取Bean.
     * @author 李铭浩
     * @date 2017年8月16日
     * @param clazz
     * @return
     */
    public static <T> T getBean(Class<T> clazz){
       return getApplicationContext().getBean(clazz);
    }
    
    /**
     * @description 通过name,以及Clazz返回指定的Bean
     * @author 李铭浩
     * @date 2017年8月16日
     * @param name
     * @param clazz
     * @return
     */
    public static <T> T getBean(String name,Class<T> clazz){
       return getApplicationContext().getBean(name, clazz);
    }

}

注入方法一

@Component
public class SpringUtil implements ApplicationContextAware {
}

注入方法二

在App.java 中注入bean

@Bean
public SpringUtil springUtil2(){return new SpringUtil();}

注入方法三

@Import(value={SpringUtil.class})

@SpringBootApplication
@ServletComponentScan
@Import(value={SpringUtil.class})
public class App {
    ...
}

猜你喜欢

转载自my.oschina.net/u/159221/blog/1613171