Spring框架中获取bean的五种方法

原文地址是:http://blog.csdn.net/gaohuanjie/article/details/50895862

获取bean的方法有五种,分别是:

(1)      第一种:在初始化时保存ApplicationContext对象

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");  

ac.getBean("beanId"); 

(2)      通过Spring提供的工具类获取ApplicationContext对象

import org.springframework.web.context.support.WebApplicationContextUtils;

ApplicationContext ac1 =WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);

ApplicationContext ac2 =WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);

ac1.getBean("beanId");

ac2.getBean("beanId");

第一种方式在获取失败时抛出异常,第二种方式返回null

(3)       继承自抽象类ApplicationObjectSupport

通过抽象类ApplicationObjectSupport提供的getApplicationContext()方法可以方便的获取到ApplicationContext实例,进而获取Spring容器中的beanSpring初始化时,会通过该抽象类的setApplicationContext(ApplicationContextcontext)方法将ApplicationContext对象注入。

(4)      继承自抽象类WebApplicationObjectSuppo

(5)      实现接口ApplicationContextAware

说明:实现该接口的setApplicationContext(ApplicationContextcontext)方法,并保存ApplicationContext对象。Spring初始化时,会通过该方法将ApplicationContext对象注入。

public class SpringConfigTool implementsApplicationContextAware {// extends ApplicationObjectSupport{

  privatestatic ApplicationContext ac = null;

  privatestatic SpringConfigTool springConfigTool = null;

  publicsynchronized static SpringConfigTool init() {

         if(springConfigTool == null) {

                springConfigTool= new SpringConfigTool();

         }

         returnspringConfigTool;

  }

  publicvoid setApplicationContext(ApplicationContext applicationContext)throwsBeansException {

         ac= applicationContext;

  }

  publicsynchronized static Object getBean(String beanName) {

         returnac.getBean(beanName);

  }

}

   其次在applicationContext.xml文件进行配置:

<bean id="SpringConfigTool"class="com.ghj.tool.SpringConfigTool"/>

最后通过如下代码就可以获取到Spring容器中相应的bean了:

SpringConfigTool.getBean("beanId"); 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值