java技术--SpringContextUtil类的作用
企业级开发过程中,一般使用Spring注解开发。使用注解获取Spring容器管理的类(这些类都必须是Spring容器中的类)!开发过程中,有时会遇到需要在普通类中注入spring管理的单例bean。直接注入是注入不进去的,这是就需要创建一个工具类来获取Spring容器管理的bean。举例:普通类User.classpublic class User{...
·
企业级开发过程中,一般使用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
更多推荐
已为社区贡献3条内容
所有评论(0)