`

实例化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/beans http://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获取webapplicationcontext,applicationcontext几种方法详解

    Spring 获取 WebApplicationContext、ApplicationContext 几种方法详解 在 Spring 框架中,获取 WebApplicationContext 和 ApplicationContext 对象是非常重要的,因为它们提供了访问 Spring 容器中的 Bean 对象的...

    获取spring容器的方法

    本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...

    Spring容器的通俗理解及简单写法

    在Java开发中,Spring容器(也称为ApplicationContext或BeanFactory)扮演着重要角色,它通过控制反转(Inversion of Control, IOC)和依赖注入(Dependency Injection, DI)的概念,帮助开发者构建松散耦合的系统。...

    获取Spring容器

    可以通过多种方式来初始化`ApplicationContext`,其中最常见的有以下几种: 1. **XML配置文件**:使用XML配置文件来定义Spring容器中Bean的配置信息。 2. **注解驱动**:使用注解如`@ComponentScan`、`@...

    Spring 延迟实例化

    在Spring框架中,延迟实例化(Lazy Initialization)是一种优化技术,用于控制bean何时被实例化。默认情况下,当ApplicationContext启动时,所有配置为单例模式(Singleton)的bean都会被立即实例化。但是,如果一个...

    spring容器学习笔记

    4.2. setter 注入通过定义带有 `set` 前缀的方法,Spring 容器可以在 Bean 实例化后设置依赖。例如: ```xml ``` 5. 配置元数据的来源Spring 容器可以从多种来源读取配置元数据,包括 XML 文件、Java 配置类...

    spring 容器.docx

    Spring容器主要有两种接口形式:BeanFactory和ApplicationContext,后者是前者的子接口。这两种接口都是用来表示Spring容器,它们的主要职责是创建Bean实例并管理这些实例。 BeanFactory作为Spring的基础容器接口,...

    模拟Spring的IoC容器实现注解自动装配

    而注解自动装配(Autowired)是Spring IoC容器的一种高级特性,它允许我们通过注解来声明对象之间的依赖,无需手动编写XML配置。现在,我们将深入探讨如何模拟Spring的IoC容器实现注解自动装配。 首先,我们需要...

    Spring中Bean的生命周期 applicationcontext的应用(实现国际化,事件的传递)

    1. **初始化**:当Spring容器加载Bean定义时,它会创建Bean的实例。这通常通过无参构造函数完成。如果Bean定义中包含了工厂方法,那么会使用该方法来创建Bean。 2. **属性注入**:接着,Spring会根据Bean定义中的...

    Spring IOC容器实现分析

    3. **Bean工厂**(BeanFactory):BeanFactory是Spring容器最基础的实现,它负责Bean的实例化、依赖注入以及生命周期管理等核心功能。 4. **工厂Bean**(FactoryBean):FactoryBean是一种特殊的Bean,它可以通过...

    spring学习之路(黑马课程笔记)

    工厂方式实例化是通过调用自定义的工厂方法对Bean进行实例化,包括静态工厂方法实例化和实例工厂方法实例化两种形式。 Bean的延迟加载 在Spring框架中,Bean的延迟加载是指在业务层等各种功能bean中使用延迟加载的...

    Spring高级应用,Bean讲解

    Bean 的实例化有三种方式,分别为构造器实例化、静态工厂方法实例化和实例工厂方法实例化(其中最常用的是构造器实例化)。 构造器实例化 构造器实例化是指 Spring 容器通过 Bean 对应的类中默认的构造函数来实例...

    spring相关面试题.docx

    5. **Spring配置Bean实例化的几种方式**: - **无参构造器实例化**:通过指定`class`属性创建Bean。 - **静态工厂方法**:通过`factory-method`属性指定工厂类的静态方法创建Bean。 - **实例工厂方法**:先创建...

    Spring系列面试题129道(附答案解析)

    其核心思想是反转控制(IoC),即控制权由应用代码转移到了Spring容器。 10、什么是依赖注入? 依赖注入(DI)是一种设计模式,它允许一个对象通过构造器、工厂方法的参数或属性来定义它们对其他对象的依赖关系,...

    Spring在应用中获得Bean的方法

    获取Bean主要有以下几种方式: 1. **通过名称获取Bean** 使用`ApplicationContext`的`getBean(String name)`方法可以直接根据Bean的定义名称获取到对应的实例。例如: ```java ApplicationContext context = new...

    SpringIoc示例代码

    开发者不再需要手动创建对象,而是声明对象及其依赖,然后由Spring容器负责实例化、初始化和管理这些对象。这样,对象之间的耦合度大大降低,因为它们不再直接引用彼此,而是通过容器获取依赖。 接下来,我们来看看...

    Spring IOC Annotation 注入 学习实例

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它将对象的创建和管理权交给了Spring容器,从而解耦了应用代码与对象生命周期管理的关系。Annotation注入是Spring IOC的一种实现方式,它利用...

    Spring4 HelloWorld

    6. **Bean的声明和实例化**:在`applicationContext.xml`中,通过`&lt;bean&gt;`标签声明Bean,如`&lt;bean id="helloWorld" class="com.example.HelloWorld"&gt;`,其中`id`是Bean的唯一标识,`class`指定了Bean的全限定类名。...

Global site tag (gtag.js) - Google Analytics