Java:Spring获取Bean的方法

2012-11-05  文晶 

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

  代码:

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

  说明:

  这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。

  其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext();

  另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出WebApplicationContext 对象:

  WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

459°/4593 人阅读/0 条评论 发表评论

登录 后发表评论