一:Spring中的几种容器都支持使用xml装配bean,包括:
- XmlBeanFactory ,
- ClassPathXmlApplicationContext ,
- FileSystemXmlApplicationContext ,
- XmlWebApplicationContext
加载这些容器的配置文件的xml有一下几种常见的方法:
1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)
- Resource resource = new ClassPathResource("appcontext.xml");
- BeanFactory factory = new XmlBeanFactory(resource);
从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!
2:引用应用上下文用ClassPathXmlApplicationContext
- ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
- ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml"); // src/conf 目录下的
- ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");
3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext
- ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml");
- ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");
- ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");
- ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");
注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中
- String[] configs = {"applicationContext.xml","user_spring.xml"};
- ApplicationContext ctx = new ClassPathXmlApplicationContext(configs);
- //ApplicationContext ctx=new FileSystemXmlApplicationContext(configs);
- AbstractDao myUserDAO = (AbstractDao) ctx.getBean("userDao");
4:Web工程定制的加载方法 XmlWebApplicationContext
- ServletContext servletContext = request.getSession().getServletContext();
- ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );
注:web.xml里面可以定义两种参数:
1、application范围内的参数,存放在servletcontext中。<context-param>中的参数(可以指定多个文件)
2、servlet范围内的参数,只能在servlet的init()方法中取得, <init-param>中的参数,在init方法中用this.getInitParameter("param1")获取
二:要是spring配置多个xml,并且这些文件相互应用的加载方式
1:在web.xml配置,应用服务去加载
- <servlet>
- <servlet-name>app</servlet-name>
- <servlet-class>
- org.springframework.web.servlet.DispatcherServlet
- </servlet-class>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value>
- </context-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
2:在/WEB-INF/applicationContext.xml配置应用服务去加载
可以在applicationContext.xml中用import引入其他的配置文件
- <import resource="user_spring.xml" />
相关推荐
在Spring框架中,Spring Context上下文是核心组件之一,它为开发者提供了强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)功能。本篇文章将深入探讨如何利用Spring ...
在Spring MVC和Spring框架的整合应用中,常常会遇到两套上下文的问题。Spring MVC是Spring框架的一个模块,主要用于处理Web请求,而Spring则提供了一个更广泛的IoC(Inversion of Control,控制反转)和AOP(Aspect ...
本章将深入探讨Spring应用上下文的生命周期,从启动准备阶段到关闭阶段,包括各个关键步骤和相关组件的作用。 1. **Spring 应用上下文启动准备阶段** 在这个阶段,AbstractApplicationContext的`prepareRefresh()`...
Spring Boot引入了一种更智能的依赖注入方式——自动配置。自动配置是通过`@EnableAutoConfiguration`注解启动的,它根据项目中的类路径和特定条件自动配置Bean。例如,如果类路径下存在`MongoClient`的jar,Spring ...
Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...
spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...
Maven项目,可直接编译通过,已经有一个测试的数据读取 和一个测试的...上下文读取器配置添加至readerPool.readers; 上下文处理器配置添加至serviceProcessors.services; 分析链线程数配置serviceProcessors.threadCount;
AnnotationConfigApplicationContext是从一个或多个基于Java的配置类中加载Spring应用上下文的方式。通过使用@Configuration注解,可以将配置类作为上下文的来源。 2. AnnotationConfigWebApplicationContext ...
Spring Boot的热加载机制主要通过以下方式实现: 1. **ClassReloader**: SpringLoaded包含了一个ClassReloader类,它监控源码的改动,一旦检测到变化,就会触发类的重新加载。这使得开发者在代码编辑器中保存更改后...
2. **配置Spring监听器**:在`web.xml`文件中,需要配置一个Spring的上下文监听器`ContextLoaderListener`,该监听器负责初始化Spring的ApplicationContext。具体配置如下所示: ```xml <listener-class>org....
通过Spring上下文获取bean的实例对象
总的来说,Spring动态加载配置文件的实现涉及到文件监听、配置文件解析、应用上下文刷新以及Web容器的协同。通过这样的机制,开发者可以在开发阶段快速响应配置的更改,提高开发效率,同时降低生产环境因重启服务...
同时,在`web.xml`中也需要做一些基本的配置,确保Spring的上下文能够被正确加载。 #### 2. 使用Spring的`DelegatingRequestProcessor` 第二种整合方式是使用Spring提供的`DelegatingRequestProcessor`类。这种...
综上所述,全局懒加载是一种有效的优化策略,能够帮助我们提高应用的启动效率。但在使用时,也需要注意它可能导致的首次请求延迟和延迟暴露错误的问题。根据应用的具体需求和场景,合理地选择是否启用全局懒加载以及...
Spring的五种通知和三种加载方式为开发者提供了灵活的AOP实现策略,帮助我们在不修改业务代码的情况下插入额外的功能,从而实现代码解耦和模块化。理解并熟练应用这些机制,可以使我们的代码更加优雅,易于维护。在...
因此,一般情况下,我们只选择其中一种方式来加载Spring配置。 5. **自定义配置** 除了默认的`/WEB-INF/applicationContext.xml`,你还可以通过`contextConfigLocation`指定多个配置文件,用逗号分隔它们,例如`...
首先,Spring 提供了两种选择来加载 ApplicationContext:ContextLoaderListener 和 ContextLoaderServlet。这两者在功能上完全等同,只是一个是基于 Servlet2.3 版本中新引入的 Listener 接口实现,而另一个基于 ...
Spring Boot 框架提供了多种方式来执行容器加载完成后的特定操作,例如使用 ApplicationListener 接口或使用 @PostConstruct 注解。在本文中,我们将介绍使用 ApplicationListener 接口来执行容器加载完成后的特定...