在项目中,经常遇到这样的问题:有些类需要使用new来创建对象,但是类中需要使用spring容器中定义的bean,此时无法通过spring的自动注入来注入我们需要使用的bean。所以需要手动的从spring容器中获取bean。要获取bean必须先获取到ApplicationContext对象,以下就是该获取方式
工具类实现ApplicationContextAware接口,并重写setApplicationContext(ApplicationContext applicationContext)方法,在工具类中使用@Component注解让spring进行管理。spring容器在启动的时候,会调用setApplicationContext()方法将ApplicationContext 对象设置进去。
-
-
public class ApplicationContextUtil implements ApplicationContextAware {
-
private static ApplicationContext context;
-
-
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-
context = applicationContext;
-
}
-
-
public static ApplicationContext getApplicationContext() {
-
return context;
-
}