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

来源:互联网 发布:信鸽群发软件怎么样 编辑:程序博客网 时间:2024/05/29 05:02

原文地址是: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 0
原创粉丝点击