`
gaozzsoft
  • 浏览: 413438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

获取spring容器applicationContext的几种方式

 
阅读更多

 

一、定义web.xml,由web容器自动加载配置文件初始化ApplicationContext实例,用WebApplicationContextUtils.getWebApplicationContext()得到ApplicationContext的引用。

方法1(web.xml) 
<web-app> 
   <context-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/applicationContext.xml</param-value> 
   </context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
</web-app> 
方法2 (web.xml) 
<web-app> 
   <context-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/applicationContext.xml</param-value> 
   </context-param> 
   <servlet> 
      <servlet-name>SpringContextServlet</servlet-name> 
      <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
   </servlet> 
</web-app> 
方法3 在(struts-config.xml)中加载 
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
        <set-property property="contextConfigLocation" 
            value="/WEB-INF/applicationContext.xml, 
                   /WEB-INF/action-servlet.xml"/> 
</plug-in>

注:对于方法1,2如果xml配置文件比较多,可进行拆分,然后在applicationContext.xml配置文件加载被拆分的配置文件,通过<import resource=""/>加载被拆分的配置文件,如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="
http://www.springframework.org/schema/beans"
 xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 
 <!-- 加载被拆分的Spring配置文件 -->
    <import resource="applicationContext-dao.xml"/>   
    <import resource="applicationContext-service.xml"/>

 

</beans>

 

通过web.xml配置,web容器会自动加载context-param中的配置文件初始化ApplicationContext实例,然后就可以在web应用中通过WebApplicationContextUtils.getWebApplicationContext方法获取ApplicationContext的引用

如:

    ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); 
    LoginAction action=(LoginAction)ctx.getBean("action");

 

编写SpringUtil.java,在构造方法中如下:

二、利用ClassPathXmlApplicationContext加载配置文件实例化applicationContext

     如下:

         ApplicationContext ac = new ClassPathXmlApplicationContext("/WEB-    INF/applicationContext.xml"); 

     或者

        String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};   

       ApplicationContext ac = new ClassPathXmlApplicationContext(locations);
     A a = (A)ac.getBean("a");

三、利用FileSystemXmlApplicationContext加载配置文件实例化applicationContext

    ApplicationContext ctx = new FileSystemXmlApplicationContext("/WEB-INF/applicationContext.xml");

    或者

    String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};            

    ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );

    A a =(A)ctx.getBean("a");

分享到:
评论

相关推荐

    Spring定义bean的三种方式和自动注入

    bean加入spring容器管理的方式,bean加入applicationcontext容器的方式

    SpringFramework常见知识点.md

    - Spring依赖注入的方式有几种? - 一个bean的定义包含了什么?(BeanDefinition) - bean的作用域有哪些? - Spring 的扩展点主要有哪些? - Spring如何解决循环依赖? - 事务的传播行为是什么?有哪些? - 什么是AOP...

    Spring面试题含答案.pdf

    25. 解释 Spring 支持的几种 bean 的作用域 26. Spring 框架中的单例 bean 是线程安全的吗? 27. 解释 Spring 框架中 bean 的生命周期 28. 哪些是重要的 bean 生命周期方法? 你能重载它们吗? 29. 什么是 Spring ...

    高级开发spring面试题和答案.pdf

    spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...

    开源框架 Spring Gossip

    从代理机制初探 AOP 动态代理 &lt;br&gt;AOP 观念与术语 Spring AOP Advices Advices 包括了Aspect 的真正逻辑,由于缝合至Targets的时机不同,Spring 提供了几种不同的 Advices。 Before ...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    千方百计笔试题大全

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    java面试宝典

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    avaliacao-s2it

    3-在Web服务器上运行的组件只有几种类型: C 4-分析有关JEE和EJB的以下各项。 这 5-Spring Framework是一个完整的Java平台,为Java应用程序的开发提供基础结构支持。 关于Spring 3.0框架的功能,请检查正确的选项...

Global site tag (gtag.js) - Google Analytics