在spring的相关项目中,bean生成之后都是spring容器来管理的,但是一个项目中有些特殊类不受spring容器管理,但是缺需要使用受spring管理的bean,不受spring容器管理就不能通过正常的方式注入bean,为解决此问题spring给我们提供了ApplicationContextAware接口,让我们可以编写一个工具类来实现ApplicationContextAware,通过工具类来获取我们需要的bean,供我们在不受spring容器管理的类中使用,具体代码如下:
@Component
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(ApplicationContextUtils.applicationContext == null){
ApplicationContextUtils.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
Spring 之 ApplicationContextAware 接口的使用
最新推荐文章于 2023-07-28 17:56:01 发布