`
gaozzsoft
  • 浏览: 426970 次
  • 性别: 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获取webapplicationcontext,applicationcontext几种方法详解

    在独立应用程序中,通过手工初始化 Spring 容器,可以使用以下方式获取 ApplicationContext 对象: `ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");` `ac.getBean("bean...

    获取spring容器的方法

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

    获取Spring容器

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

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

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

    Spring中ApplicationContext对事件传递

    这里需要注意的是,由于Spring IoC容器中的事件模型是一种简单的、粗粒度的监听模型,即所有的监听器都会接收到同一事件,因此通常需要在监听器内部进行事件类型的检查,以决定是否需要处理该事件。 ##### 3. 事件...

    spring 容器.docx

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

    Java获取Bean的几种方式.pdf

    本文主要探讨了Java获取Bean的多种方式,尤其在Spring Boot和IOC(控制反转)环境下。这些方式可以帮助开发者便捷地从Bean容器中检索和使用所需的Bean。 1. **初始化时保存ApplicationContext对象** 当应用启动时...

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

    下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`文件中定义Bean。例如,对于`Student`和`Teacher`类,我们分别创建`bean`标签...

    spring容器学习笔记

    有以下几种方式实现依赖注入: 4.1. 构造函数注入通过提供带有依赖作为参数的构造函数,Spring 容器可以创建 Bean 并传递所需的依赖。例如: ```xml ``` 4.2. setter 注入通过定义带有 `set` 前缀的方法...

    Spring在代码中获取bean的几种方式.rar

    以下将详细介绍Spring在代码中获取bean的几种主要方法: 1. **`ApplicationContext` 接口** `ApplicationContext` 是Spring中最常用的接口之一,它提供了获取Bean的多种方法。例如,`getBean(String beanName)` ...

    几种spring获取bean的方法.txt

    根据提供的文件信息,我们可以总结出以下关于Spring框架中获取Bean的几种方法的相关知识点: ### Spring框架简介 Spring框架是一款开源的轻量级Java EE应用程序开发框架,它通过提供一系列强大的功能来简化Java...

    普通对象使用spring容器中的对象的实现方法

    这个接口提供了获取ApplicationContext对象的方法,从而可以使用ApplicationContext对象来获取spring容器中的对象。 在实现方法中,我们首先需要创建一个SpringBeanUtil类,这个类实现了ApplicationContextAware...

    SpringBoot 获取spring bean方式.rar

    本篇将详细介绍Spring Boot中获取Bean的几种常见方式。 首先,让我们理解什么是Spring Bean。在Spring框架中,Bean是一个由Spring容器管理的对象,通常代表应用中的业务组件或服务。Spring会负责Bean的创建、初始化...

    Spring IOC容器实现分析

    - **BeanFactory**:这是Spring容器最基本的实现,提供了一种延迟加载的能力。这意味着当用户通过getBean()方法请求Bean时,Bean才会被实例化。然而,BeanFactory并不支持自动装配、事件监听等功能。 - **...

    ApplicationContext容器的uml类图

    `ApplicationContext`接口在Spring框架中扮演着至关重要的角色,它是Spring容器的一种高级形式,提供了比基础的`BeanFactory`更多的功能。`ApplicationContext`接口继承自多个接口,包括`BeanFactory`、`...

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

    在Spring容器中,Bean经历以下几个阶段: 1. **初始化**:当Spring容器加载Bean定义时,它会创建Bean的实例。这通常通过无参构造函数完成。如果Bean定义中包含了工厂方法,那么会使用该方法来创建Bean。 2. **属性...

    spring ioc容器部署实现

    根据应用需求,编写具体的业务逻辑类和服务类,并通过注解或XML配置的方式将其与Spring容器绑定。 5. **集成Spring JDBC Template** 使用Spring JDBC Template简化数据库操作。首先,在配置文件中定义数据源和...

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

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

    Spring在代码中获取bean的几种方式详解

    "Spring在代码中获取bean的几种方式详解" Spring框架是Java应用程序中最流行的框架之一,它提供了许多功能强大且灵活的功能之一就是Bean管理机制。Bean是Spring框架的核心组件,用于管理应用程序中的业务逻辑。在...

Global site tag (gtag.js) - Google Analytics