Spring中ApplicationContext加载机制。
加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。
这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。
配置非常简单,在web.xml中增加:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
或:
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化
ApplicationContext实例,如果需要指定配置文件位置,可通过context-param加以指定:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param>
配置完成之后,即可通过
WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext引用。
如:ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext();
LoginAction action=(LoginAction)ctx.getBean("action");
-------------------------------------------------------------------------------------------
spring为ApplicationContext提供有三种实现(举例)
spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下:
1. FileSystemXmlApplicationContext
eg1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加载单个配置文件
eg2.
String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new FileSystemXmlApplicationContext(locations ); //加载单个配置文件
eg3. ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");//根据具体路径加载文件
2. ClassPathXmlApplicationContext
eg1. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
eg2.
String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new ClassPathXmlApplication(locations);
注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。
3. XmlWebApplicationContext
eg1. ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);注 : 一般是 ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
分享到:
相关推荐
3. **事件支持**:ApplicationContext提供了ApplicationEvent和ApplicationListener机制,允许在应用程序上下文中发布和监听事件。 4. **AOP代理**:ApplicationContext能够自动创建AOP代理,使得我们可以方便地...
ApplicationContext还支持Bean的懒加载、单例或多例管理、Profile功能(根据环境选择加载不同的配置)、以及与其他Spring模块(如Spring Data、Spring Security等)的集成。 总的来说,ApplicationContext作为...
在Spring框架中,classpath加载配置文件是应用开发中常见的操作。Spring框架提供了灵活的方式来...随着技术的发展,Spring也在不断地改进其配置加载机制,了解最新的加载方式可以帮助开发者更有效地利用Spring框架。
在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...
在Spring框架中,Bean的生命周期管理和ApplicationContext的应用是两个核心概念,它们对于理解Spring如何管理和协调应用中的对象至关重要。本文将深入探讨这两个主题,并结合国际化(i18n)和事件传递来阐述它们在...
在Spring框架中,BeanFactory和ApplicationContext是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入掌握Spring框架至关重要。 首先,BeanFactory是Spring中最基本的bean容器,它提供了对...
《Spring框架加载机制详解》 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程功能,成为了企业级应用的首选。本文将深入探讨Spring框架的加载过程,旨在帮助开发者更好地理解和掌握Spring的核心机制。...
理解这些基本概念和机制后,我们可以灵活地在Spring应用中实现国际化,为全球用户提供更加友好和本地化的体验。在Spring MVC中,国际化同样可以应用,通过配置视图解析器和HTTP请求中的locale信息,可以实现动态切换...
2. **配置Spring监听器**:在`web.xml`文件中,需要配置一个Spring的上下文监听器`ContextLoaderListener`,该监听器负责初始化Spring的ApplicationContext。具体配置如下所示: ```xml <listener-class>org....
Spring Cloud Context 提供了 ApplicationContext 的实用程序和特殊服务,而 Spring Cloud Commons 则是一组在不同的 Spring Cloud 实现中使用的抽象和常用类。 在使用 Spring Cloud 时,需要注意到由于“非法密钥...
虽然通常这个注解用于Spring管理的Bean,但也可以在非Spring管理的类中使用,只要确保配置的加载和绑定过程正确执行。 为了读取YAML配置,你需要在Spring Boot应用的启动类或者其他适当的初始化点,注册`@...
在Spring Boot应用中,我们通常使用YAML或properties文件来管理我们的配置,因为它们与Spring Boot的自动配置机制紧密集成。然而,在某些情况下,我们可能需要读取传统的`applicationContext.xml`配置文件,例如,当...
加载jar包中的Spring配置文件需要对Spring的类路径加载机制有深入理解。通过`ClassPathResource`,我们可以定位并加载jar包内的配置,然后应用到`ApplicationContext`。在SSM整合的项目中,正确地加载这些配置文件...
它介绍了Spring的ApplicationContext和BeanFactory等核心组件,以及如何通过注解和Java配置文件来配置bean。还涉及了Spring IoC容器的扩展功能,例如资源加载、环境抽象和加载时编织器的注册。 资源管理章节涵盖了...
3. **XFire的Spring支持**:XFire提供了对Spring的内置支持,可以通过Spring的ApplicationContext加载Web服务。在Spring配置文件中,我们可以定义一个`<bean>`,指定其类型为`org.codehaus.xfire.spring....
此外,`@Component`注解使这个类成为了一个Spring Bean,`ApplicationContextAware`接口则允许我们获取并设置`ApplicationContext`,从而能够在`loadXmlConfigurations`方法中加载XML配置。 在实际开发中,你还需要...
Spring 提供了多种机制来加载和管理多个配置文件,确保应用程序能够灵活地组织和维护其配置细节。 ##### 3.1 ApplicationContext 加载多个配置文件 `ApplicationContext` 是 Spring 的核心接口之一,用于提供Bean...
总之,虽然Spring Boot主要依赖Java配置,但通过合理的使用`@ImportResource`和理解配置加载机制,我们可以灵活地在项目中融入XML配置文件,实现与Spring Boot的无缝集成。这使得我们能够在享受Spring Boot带来的...