Java中如何获取Spring中配置的bean

2014-11-24 10:26:32 · 作者: · 浏览: 0

一、什么是Spring?
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

二、如何在程序中获取Spring配置的bean呢?

方法一:在初始化时保存ApplicationContext对象

代码:


 ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContext.xml"); 
    ac.getBean("beanId"); 

ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContext.xml");
ac.getBean("beanId");说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。


方法二:通过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"); 

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");

方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。


方法四:继承自抽象类WebApplicationObjectSupport
说明:类似方法三,调用getWebApplicationContext()获取WebApplicationContext


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