`
wanxiaotao12
  • 浏览: 467693 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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>

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

相关推荐

    spring bean XML配置入门

    一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...

    Spring+mvc+mybatis Mapper xml自动加载

    // 检查并重新加载XML文件 } } ``` 在`onApplicationEvent`方法中,我们可以使用Java的`File`类来监控XML文件的改动,并在文件变化时重新初始化SqlSessionFactory。 同时,提供的`industry.sql`可能是数据库初始...

    这一次搞懂Spring的XML解析原理说明

    在实际应用中,我们通常使用`ApplicationContext`的实现,比如`ClassPathXmlApplicationContext`,因为它可以从类路径中加载XML配置文件。 `ClassPathXmlApplicationContext`的构造函数接收XML配置文件的位置,然后...

    spring加载顺序讨论

    本文将详细探讨Spring加载顺序,并结合`@PostConstruct`、`构造方法`以及`@Autowired`等关键注解进行深入解析。 首先,Spring容器在启动时会读取配置文件(如XML或Java配置类),根据配置信息创建Bean的定义。Bean...

    模拟spring的xml配置文件注入

    3. 加载XML文件:`File xmlFile = new File("path_to_xml_file.xml");` 4. 解析XML文件:`Document document = saxBuilder.build(xmlFile);` 5. 遍历XML文档元素:通过`document.getRootElement()`获取根元素,然后...

    logback-spring.xml日志打印demo

    相比于普通的`logback.xml`,`logback-spring.xml`在启动时会自动被Spring Boot加载,无需额外的配置。 2. **基本结构**: 一个基本的`logback-spring.xml`配置文件包括以下几个主要部分:`&lt;configuration&gt;`、`...

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

    Spring Boot应用不再需要`web.xml`,而是通过`SpringApplication.run()`方法启动,自动配置和加载应用的配置。 总之,`web.xml`中的这些配置是传统Spring MVC应用初始化Spring容器的关键步骤,它们确保了Spring框架...

    SpringAop xml方式配置通知

    在Spring框架中,AOP通过代理实现,可以使用XML配置或注解进行配置。本篇文章主要聚焦于Spring AOP的XML配置通知。 **一、AOP概念解析** 1. **切面(Aspect)**:一个关注点的模块化,例如事务管理就是一个切面。...

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

    本文将详细介绍如何在Spring Boot应用中加载XML配置的完整步骤。 首先,创建一个新的Spring Boot项目,例如命名为`xml`。接着,我们需要添加Web相关的依赖,以确保我们的应用可以处理HTTP请求。这可以通过在`pom....

    SpringBoot之logback-spring.xml不生效的解决方法

    当使用logback作为日志框架时,通常我们会将配置文件放在`src/main/resources`目录下,命名为`logback-spring.xml`,这是因为Spring Boot默认支持`logback-spring.xml`,它能与Spring的自动配置机制集成。...

    spring加载restful(文档+程序源码).zip

    《Spring加载RESTful服务详解及源码分析》 在当今的Web开发中,RESTful API已经成为构建可扩展、易于维护的系统的重要组成部分。Spring框架,作为Java生态系统中的中流砥柱,提供了强大的支持来实现RESTful服务。本...

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

    通过这个配置,Spring可以管理MyBatis的SqlSession,实现数据库操作的事务控制,并且能够自动扫描和加载Mapper接口,使得SQL查询可以通过注解或者XML文件进行定义。 3. **web.xml**: 这是Web应用的部署描述符,定义...

    Spring动态加载配置文件

    通常,我们将Spring的配置文件(如`applicationContext.xml`)放在项目的类路径下,如`src/main/resources`目录。确保配置文件的位置在项目构建后不会变动,以便于后续的监听和加载。 其次,我们需要创建一个监听类...

    spring加载多个配置文件

    首先,Spring提供了多种方式来加载多个配置文件,包括XML配置、Java配置以及基于注解的配置。在XML配置中,可以使用`&lt;import&gt;`标签来引入其他XML配置文件。例如,主配置文件中可以这样写: ```xml ...

    java 解析xml,模拟spring框架ioc

    1. **加载XML文件**:使用Java的DOM(Document Object Model)或SAX(Simple API for XML)库读取并解析XML文件。DOM将整个XML文件加载到内存中形成一棵树形结构,便于操作;SAX则是事件驱动的解析方式,只在遇到...

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

    首先,我们来看一下Spring加载配置文件的基本方式。在Spring中,可以通过ApplicationContext接口的实现类,比如ClassPathXmlApplicationContext,来加载位于classpath中的配置文件。例如,创建一个...

    struts加载spring的方法

    ### Struts加载Spring的方法 在Java Web开发领域中,Struts与Spring是两个非常重要的框架。Struts主要用于构建MVC架构的应用程序,而Spring则是一个轻量级的控制反转(Inversion of Control, IoC)容器,同时也提供...

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

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

    Spring XML配置的12个技巧

    3. 使用简化格式:Spring XML配置支持简化语法,减少子元素的使用,如将`&lt;value&gt;`和`&lt;ref&gt;`作为属性直接嵌入`&lt;property&gt;`和`&lt;constructor-arg&gt;`标签中。这有助于减少冗余代码,提高配置文件的可读性。 4. 尽量使用`...

    Spring IoC加载流程讲解

    Spring IoC 加载流程讲解 在本节中,我们将对 Spring IoC 加载流程进行详细的讲解,并探讨 IoC 思想和...通过了解 Spring IoC 加载流程,我们可以更好地理解 Spring 的核心机制,并更好地使用 Spring 框架进行开发。

Global site tag (gtag.js) - Google Analytics