`

关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer

    博客分类:
  • java
阅读更多
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。

基本的使用方法是:(1)

<bean id="propertyConfigurerForWZ" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>classpath:/spring/properties/jdbc.properties</value>
    </property>
</bean>

其中classpath是引用src目录下的文件写法。

当存在多个Properties文件时,配置就需使用locations了:(2)

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
       <list>
          <value>classpath:/spring/properties/jdbc.properties</value>
          <value>/WEB-INF/conf/spring/system.properties</value>
        </list>
    </property>
</bean>

接下来我们要使用多个PropertyPlaceholderConfigurer来分散配置,达到整合多工程下的多个分散的Properties文件,其配置如下:(3)

<bean id="propertyConfigurerForProject1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="order" value="1" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="location">
       <value>classpath:/spring/include/dbQuery.properties</value>
    </property>
</bean>

<bean id="propertyConfigurerForProject2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="order" value="2" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="locations">
      <list>
         <value>classpath:/spring/properties/jdbc.properties</value>
         <value>/WEB-INF/conf/spring/system.properties</value>
      </list>
    </property>
</bean>

其中order属性代表其加载顺序,而ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,如配置了多个PropertyPlaceholderConfigurer,则需设置为true

2、PropertyOverrideConfigurer
与PropertyPlaceholderConfigurer 不同的是: PropertyOverrideConfigurer 利用属性文
件的相关信息,覆盖XML 配置文件中定义。即PropertyOverrideConfigurer 允许XML 配
置文件中有默认的配置信息。
如果PropertyOverrideConfigurer 的属性文件有对应配置信息,则XML 文件中的配
置信息被覆盖:否则,直接使用XML 文件中的配置信息。使用PropertyOverrideConfigurer
属性文件的格式如下:
beanName.property=value
beanName 是属性占位符企图覆盖的bean 名, property 是企图覆盖的属性名。看如
下配置文件:
<?xml version="1.0" encoding="gb2312"?>
<'一指定Spring 配置文件的dtd>
<lDOCTYPE beans PUBL工C "-//SPR工NG//DTD BEAN//EN"
''http://www.springframework.org/dtd/spring-beans.dtd''>
<!… Spring 配置文件的根元素>
<beans>
<' 配置一个属性占位符beanoApplictionContext能自动识别PropertyPlaceholderConfigurer bean -->
<bean id="propertyOverrider"
class= "org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!-如果有多个属性文件,依次在下面列出来一〉
</list>
</property>
</bean>
<'…配置本地的DBCP 数据源一〉
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManager
DataSource" destroy-method="close">
<property name="driverClassName" value="dd"/>
<property name="url" value="xx"/>
<property name="username" value="dd"/>
<property name="password" value="dd"/>
</bean>
</beans>
容器自动注册propertyOverriderbean,读取dbconn.properties 文件中的属性,并用于
覆盖目标bean 的属性。其配置文件中dataSourcebean 的属性完全是随意输入的,最终被
属性文件的配置覆盖,其属性文件如下:
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql://wonder:3306/j2ee
dataSource.username=root
dataSource.password=32147

注意属性文件的格式必须是:
beanName.property=value
也就是说, dataSource必须是容器中真实存在的bean 名,否则程序将出错。
注意:仅仅察看XML 定义文件,程序无法知道BeanFactory定义是否被覆盖;当有
多个PorpertyOverrideConfigurer对同一个bean 属性定义了覆盖,则最后一个覆盖有效。
分享到:
评论

相关推荐

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    以上就是关于"Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取"的详细解释,涵盖了Spring的配置处理、ZooKeeper的使用以及两者结合的实现过程。理解并掌握这一技术,有助于提升...

    Spring中PropertyPlaceholderConfigurer的使用

    使用 PropertyPlaceholderConfigurer 需要首先在 Spring 配置文件中定义一个 bean,例如: ```xml &lt;bean id="propertyConfigurerForAnalysis" class="org.springframework.beans.factory.config....

    关于spring系统中多系统的配置

    ### 关于Spring系统中多系统的配置 在Spring框架中,我们经常会遇到单个工程需要配置多个子系统的场景。为了更好地管理这些子系统及其配置,Spring提供了多种方式来处理这一问题。本文将详细介绍如何在一个项目中...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加灵活和可维护。下面我们将详细探讨`PropertyPlaceholderConfigurer`的工作原理、使用方法以及其在实际开发中的应用。...

    SSH框架中的多数据源配置.DOC

    在SSH框架中,多数据源配置是指在一个应用程序中使用多个数据源的配置方法。这种配置可以使得应用程序能够连接多个数据库,实现数据的集成和共享。 在SSH框架中,多数据源配置可以通过使用Spring框架的数据源配置来...

    ssh配置多个数据库

    SSH 配置多个数据库 SSH 配置多个数据库是在项目中遇到连接多个数据库的情况,并且根据用户的操作不同,连接不同的数据库,这时,就要动态切换数据库。本文将介绍如何使用 Spring 和 Hibernate 配置多个数据库,...

    Spring如何使用PropertyPlaceholderConfigurer读取文件

    Spring框架中,PropertyPlaceholderConfigurer是一个非常重要的组件,它可以帮助我们读取配置文件,实现系统的配置信息统一管理。在大型项目中,我们往往会将配置信息配置在一个cfg.properties文件中,然后在系统...

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性的关键工具,使得开发者可以在配置文件中使用`${property}`形式的占位符,然后在运行时被实际值替换。 在Spring应用中,我们经常会在XML配置文件或者...

    SPRING:bean配置properties

    本文将深入解析如何利用`PropertyPlaceholderConfigurer`进行bean配置的properties操作,包括单个properties文件的配置、多个properties文件的集成以及多个`PropertyPlaceholderConfigurer`的协同工作,旨在帮助...

    属性占位符配置器

    - **配置的层次性**:可以定义多个`PropertyPlaceholderConfigurer`实例,通过优先级设置来实现多层配置的覆盖和融合。 - **环境适应性**:利用系统环境变量或特定的属性文件,根据当前运行环境动态加载配置。 - **...

    Spring加载配置和读取多个Properties文件的讲解

    通常情况下,一个系统中会存在多个 Properties 文件,每个文件都包含着特定的配置信息。 在Spring中,加载和读取Properties文件可以使用`PropertyPlaceholderConfigurer`bean。该bean可以将多个Properties文件加载...

    bboss ioc配置文件中使用外部属性文件介绍

    首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个...

    Spring动态加载配置文件

    此外,Spring Cloud Config是Spring生态系统中的一个组件,专门用于管理和动态更新分布式系统的配置。它提供了服务器端和客户端组件,可以在不重启应用的情况下远程更新配置。 总的来说,Spring动态加载配置文件...

    引入多个properties时.txt

    在SSM(Spring + SpringMVC + MyBatis)框架中,经常需要配置多个属性文件来管理各种配置信息。例如数据库连接信息、系统资源路径等。本文将详细探讨如何在SSM框架中引入多个`properties`文件,并解决可能出现的问题...

    Spring 容器后处理器

    `PropertyPlaceholderConfigurer`是一个常用的容器后处理器,它的主要作用是从外部的属性文件中读取配置信息,并将这些配置信息插入到BeanFactory的定义中。这使得可以在不修改主配置文件的情况下更改某些配置值,如...

    基于Spring2.0的Property OverrideConfig Demo

    - 如果有多个`PropertyOverrideConfigurer`,Spring会按照它们在配置文件中出现的顺序应用属性覆盖。 - 要注意避免循环引用,因为覆盖的属性可能会触发其他bean的初始化,可能导致错误。 通过`...

    spring mvc 读取配置文件

    在处理多环境配置时,可以使用` profiles`元素,为不同的环境(如dev、test、prod)提供不同的配置。 最后,Spring Boot简化了配置过程,通过`application.properties`或`application.yml`进行集中式配置,并自动...

    spring配置两个数据

    而在多数据源管理方面,Spring同样提供了灵活且强大的支持,允许开发者在一个应用程序中配置和使用多个数据源,满足了复杂业务场景下对不同数据库操作的需求。 ### Spring配置两个数据源 #### 核心概念解析 **...

    加载properties配置文件的几种方法

    在Spring Boot应用中,可以使用`@ConfigurationProperties`注解将properties文件中的配置映射到一个Java类的字段上。首先,创建一个配置类: ```java @ConfigurationProperties(prefix = "database") public ...

    Spring中配置和读取多个Properties文件的方式方法

    在Spring框架中,配置和读取多个Properties文件是常见的需求,尤其在大型系统中,不同模块的配置往往被拆分到不同的文件中以保持代码的整洁性和可维护性。本篇文章将详细介绍如何在Spring中实现这一功能。 首先,让...

Global site tag (gtag.js) - Google Analytics