14、web项目获取Spring的上下文环境Applicatio
2018-06-07 本文已影响0人
ltjxwxz
推荐学习:
https://blog.csdn.net/yang123111/article/details/32099329
在web项目中,spring上下文由容器初始化,所以此时想要获取ApplicationContext,不能再new,否则会重复初始化,需要用如下方法:
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext; // Spring应用上下文环境
/*
*
* 实现了ApplicationContextAware 接口,必须实现该方法;
* 通过传递applicationContext参数初始化成员变量applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
return (T) applicationContext.getBean(name);
}
}
使用时使用@Autowired注入到自己的service中,
springContextUtil.getBean(beanName);