需求:
基于spring做bean的管理,基于web开发时有两种加载配置文件创建bean的方式
实现:
第一种基于DispatcherServlet的init-param:
web.xml中配置:
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
第二种基于ContextLoaderListener:
web.xml配置:
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </context-param>
PS:如果两种方式都采用了那么spring容器中会维护两套bean,如果有调度,定时任务等那么会重复执行
相关推荐
例如,假设我们有 2 个 bean A 和 B,B 加载的文件依赖 A 中加载的全局配置文件中的路径,所以需要 A 先于 B 初始化。此外,A 中的配置改变后也需要触发 B 的重新加载逻辑,所以 A 和 B 需要互相注入。 方案一:...
它可以通过以下两种常见实现类来加载多个配置文件: - `ClassPathXmlApplicationContext`:从类路径(CLASSPATH)中加载配置文件。 - `FileSystemXmlApplicationContext`:从文件系统的当前路径加载配置文件。 ...
除了这两种方式,Spring Boot引入了更强大的`ConfigDataLocationResolver`和`ConfigDataLoader`接口,它们允许我们自定义配置数据的加载逻辑,支持更丰富的数据源,如Git、HTTP等。 在实际应用中,我们可能还需要...
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
DI是IoC的一种实现方式,它允许我们将对象的依赖关系通过配置文件或注解来定义,而不是硬编码在类内部。这样,当依赖的对象发生变化时,我们只需要修改配置,而无需修改业务代码。 接下来,我们将通过一个简单的...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
依赖注入有两种方式:setter注入和构造器注入。Spring通过反射机制调用setter方法或构造器来设置bean的属性。 对于setter注入,Spring会检查BeanDefinition中属性值的`ref`属性,如果存在,表示该属性是一个引用,...
对于配置文件,Spring支持两种主要类型的配置:XML配置和Java配置。XML配置文件通常以`applicationContext.xml`为名,其中定义了bean的实例化、依赖关系和生命周期。例如,你可以看到如下配置: ```xml <bean id=...
在Spring框架中,配置文件的加载是其核心功能之一,它允许开发者定义bean的实例化、依赖注入和其他元数据,从而实现控制反转(IoC)和面向切面编程(AOP)。今天我们将深入探讨"day38 04-Spring加载配置文件"这一...
首先,Spring 提供了两种选择来加载 ApplicationContext:ContextLoaderListener 和 ContextLoaderServlet。这两者在功能上完全等同,只是一个是基于 Servlet2.3 版本中新引入的 Listener 接口实现,而另一个基于 ...
Spring MVC 提供了多种 HandlerMapping 的实现方式,其中两种常见的实现是 BeanNameUrlHandlerMapping 和 SimpleUrlHandlerMapping。 ##### BeanNameUrlHandlerMapping BeanNameUrlHandlerMapping 是 Spring 默认...
模拟Spring的XML配置文件注入,还需要实现一个Bean工厂类,它负责根据XML配置创建bean,处理依赖关系。这个工厂类通常会有一个`parse()`方法,接受XML文件路径作为参数,解析XML后创建并返回bean实例。 在`...
在提供的“BeanTest”文件中,我们可以预期看到一个简单的Spring Bean配置和测试示例。通常,这将包括以下部分: 1. **Bean定义**:Bean定义是Spring容器如何创建和管理Bean的描述。它可以是一个XML配置文件中的...
首先,Spring框架的核心在于它的容器,主要有两种:BeanFactory和ApplicationContext。BeanFactory是Spring的基础容器,负责管理对象(称为beans),而ApplicationContext不仅包含了BeanFactory的功能,还提供了更多...
读取XML配置文件是通过`ApplicationContext`接口实现的,主要有两种方式:`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`。前者从类路径下加载配置文件,后者则从文件系统中加载。例如,创建...
获取Bean的两种常见方式是: - 使用`FileSystemXmlApplicationContext`,从文件系统加载配置文件。 - 使用`ClassPathXmlApplicationContext`,从类路径加载配置文件。例如: ```java ApplicationContext context...
Spring提供了两种主要的容器:DefaultListableBeanFactory和ApplicationContext。前者是最基础的bean工厂,而ApplicationContext不仅包含了BeanFactory的功能,还添加了资源加载、消息解析、事件发布等功能,更适合...
例如,当使用`XmlBeanFactory`从XML配置文件加载Bean定义时,`BeanFactory`会解析并加载配置,但不会立即创建Bean。 接着,`ApplicationContext`是`BeanFactory`的一个扩展,它添加了更多企业级功能,如消息支持、...
在Spring框架中,"工厂Bean"是一个非常关键的概念,它扩展了传统的Bean定义,使得我们可以在Spring IoC容器中创建自定义的实例化逻辑。工厂Bean允许开发者在对象实例化时进行更复杂的控制,比如引入特定的初始化过程...
Spring Boot提供了多种方式来读取和使用这些配置文件,使其更加便捷和高效。以下将详细介绍Spring Boot读取配置文件的常用方法。 1. **属性文件** Spring Boot默认支持两种主要的属性文件格式:`application....