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 {
...
}