`

Spring中加载xml配置文件的六种方式

阅读更多
因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,所以就总结了下Spring中加载xml配置文件的方式,我总结的有6种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:
XmlBeanFactory,ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,XmlWebApplicationContext

一: XmlBeanFactory 引用资源
Resource resource = new ClassPathResource("appcontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);

二: ClassPathXmlApplicationContext  编译路径
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");
// src目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext(new String[] {"bean1.xml","bean2.xml"});
// src/conf 目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");

三: 用文件系统的路径
ApplicationContext factory=new FileSystemXmlApplicationContext("src/appcontext.xml");
//使用了  classpath:  前缀,作为标志,  这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径
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");

四: XmlWebApplicationContext是专为Web工程定制的。
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );

五: 使用BeanFactory
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));
reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));
BeanFactory bf=(BeanFactory)reg;

六:Web 应用启动时加载多个配置文件
通过ContextLoaderListener 也可加载多个配置文件,在web.xml文件中利用
<context-pararn>元素来指定多个配置文件位置,其配置如下:
	<context-param>
    	<!-- Context Configuration locations for Spring XML files -->
        <param-name>contextConfigLocation</param-name>
        <param-value>
        ./WEB-INF/**/Appserver-resources.xml,
        classpath:config/aer/aerContext.xml,
        classpath:org/codehaus/xfire/spring/xfire.xml,
        ./WEB-INF/**/*.spring.xml
        </param-value>
    </context-param>

这个方法加载配置文件的前提是已经知道配置文件在哪里,虽然可以利用“*”通配符,但灵活度有限。

文章地址:http://javapub.iteye.com/blog/751772
分享到:
评论
2 楼 yu_zb 2016-12-08  
1 楼 yu_zb 2016-12-08  

相关推荐

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...

    模拟spring的xml配置文件注入

    在Spring框架中,XML配置文件是核心组成部分,它定义了bean的实例化、依赖注入以及其他的框架设置。本文将深入探讨如何模拟Spring的XML配置文件注入,并通过SAXBuilder解析XML文件来实现这一过程。 首先,理解XML...

    Spring中使用classpath加载配置文件浅析

    Spring框架提供了灵活的方式来加载位于classpath中的XML配置文件,这对于项目的模块化和可维护性至关重要。本文将详细分析Spring通过classpath加载配置文件的不同情形,并提供解决加载过程中可能遇到的问题的方法。 ...

    Spring中如何加载多个配置文件.pdf

    第三种方式是在主配置文件中通过`&lt;import&gt;`标签导入其他配置文件。这种方式可以让各个配置文件更加模块化,便于管理和维护。 **示例代码:** 1. **主配置文件a1.xml:** ```xml &lt;?xml version="1.0" encoding="UTF...

    spring加载多个配置文件

    对于Java配置,Spring允许在配置类中使用`@ImportResource`注解来引入XML配置文件,或者直接通过`@Configuration`注解的类来引用其他配置类。例如: ```java @Configuration @ImportResource({"classpath:config1....

    Spring 加载多个配置文件

    除了直接通过 ApplicationContext 或者 ContextLoaderListener 加载配置文件,还可以在现有的 XML 配置文件中使用 `&lt;import&gt;` 标签导入其他的配置文件。这种方式允许开发者在主配置文件中引用其他辅助配置文件,...

    spring bean XML配置入门

    在XML配置文件中,我们使用`&lt;bean&gt;`标签来定义一个Bean。例如: ```xml &lt;!-- 属性注入 --&gt; ``` 其中,`id`属性是Bean的唯一标识,`class`属性指定Bean对应的Java类。 5. **依赖注入**: Spring的核心...

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    在Spring Boot中加载XML配置的完整步骤

    理解`@ImportResource`注解,它实际上是在Spring的`spring-context`模块中定义的,用于在Spring容器启动时加载XML配置文件。`ImportResource`内部实现了`BeanDefinitionReader`接口,该接口负责读取XML文件并将其...

    加载spring 文件,在web.xml中的配置

    当我们谈论“加载Spring文件,在web.xml中的配置”时,主要是指如何在Web应用启动时初始化Spring IoC(Inversion of Control,控制反转)容器并加载配置文件。 1. **使用ContextLoaderListener** `&lt;listener&gt;`标签...

    Spring3.0 配置文件中加载Properties文件的小例子

    本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...

    详解Spring加载Properties配置文件的四种方式

    Spring加载Properties配置文件的四种方式 Spring框架提供了多种方式来加载Properties配置文件,以便于应用程序读取和使用配置信息。下面将详细介绍四种常见的加载Properties配置文件的方式。 方式一: 通过context:...

    31. Spring Boot导入XML配置【从零开始学Spring Boot】

    3. **Bean定义**:在XML配置文件中,我们可以定义Bean,包括它们的依赖关系、初始化方法、销毁方法等。例如,创建一个名为`MyService`的Bean: ```xml ``` 4. **自动配置与XML配置的结合**:Spring Boot的...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1

    总之,虽然Spring Boot主要依赖Java配置,但通过合理的使用`@ImportResource`和理解配置加载机制,我们可以灵活地在项目中融入XML配置文件,实现与Spring Boot的无缝集成。这使得我们能够在享受Spring Boot带来的...

    spring读取jar中的配置文件

    在`AppProperties`类中,我们可以定义属性的字段,并通过`@ConfigurationProperties`注解指定前缀,Spring Boot会自动从配置文件中匹配并注入值。 为了使Spring Boot能够找到JAR内的配置文件,可以在`src/main/...

    Spring+mvc+mybatis Mapper xml自动加载

    例如,在Spring的配置文件中,通常会有如下配置: ```xml &lt;bean id="mybatisSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&gt; *.xml" /&gt; ``` 这里,`mapperLocations`指定了Mapper XML...

    加载jar包中的spring配置文件

    例如,`classpath:spring-context.xml`意味着Spring会尝试在类路径下的`spring-context.xml`文件中加载配置。 3. **`classpath*:`前缀**:这个前缀与`classpath:`类似,但有一个重要的区别。`classpath*:`不仅会...

Global site tag (gtag.js) - Google Analytics