企业级开发过程中,一般使用Spring注解开发。使用注解获取Spring容器管理的类(这些类都必须是Spring容器中的类)!
开发过程中,有时会遇到需要在普通类中注入spring管理的单例bean。直接注入是注入不进去的,这是就需要创建一个工具类来获取Spring容器管理的bean。
举例:普通类User.class
public class User{
@Resource
private PortDAO portDAO;
}
注意:1.在普通类User中直接注入Spring容器中管理的PortDAO ,是不可行的
2.普通类:指不归Spring容器管理的类
1.工具类SpringContextUtil必须满足以下要求:
(1)也需要使用注解@Component注入Spring容器中
举例:工具类SpringContextUtil
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext; // Spring应用上下文环境
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);
}
}
2.在配置文件applicationContext.xml中配置工具类
<bean id="springContextUtil" class="com.bisien.infrastructure.crosscutting.base.SpringContextUtil" />
3.在普通bean中使用工具类SpringContextUtil注入spring管理的单例bean
举例:普通类User
public class User{
PortDAO portDAO= SpringContextUtil.getBean("portDAO");
}
注意:这样普通类就可以使用spring管理的单例bean
版权声明:本文为qq591009234原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。