java技术--SpringContextUtil类的作用

企业级开发过程中,一般使用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
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值