配置和读取多个Properties文件

1. 使用PropertyPlaceholderConfigurer

加载一个文件时:


加载多个文件时:

整合多工程下的多个分散的Properties文件时:


其中order属性代表其加载的顺序,如果没有设置就按照加载xml文件时的顺序,而ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,如果配置了多个PropertyPlaceholderConfigurer,则该属性必须设置且为true,否则propertyConfigurerForProject2properties文件不会被加载.

注意事项:
(1)如果上面的dbQuery.propertiesjdbc-parms.properties文件中有相同的参数配置名称dbQuery.properties中配置的参数值不会被后面的覆盖

(2)如果jdbc-parms.properties,base-config.properties彼此有相同参数名配置jdbc-parms.properties中的配置的值会被覆盖


2. 使用PropertiesFactoryBean

使用PropertiesFactoryBean,可在Bean中直接注入Properties配置文件中的值,配置如下:



这种加载方式可以在代码中通过@Value注解进行注入,   可以将配置整体赋给Properties类型的类变量,也可以取出其中的一项赋值给String类型的类变量。也可以使用<util:properties/>标签,如:

<util:properties/> 标签只能加载一个文件,当多个属性文件需要被加载的时候,可以使用多个该标签<util:properties/> 标签的实现类是PropertiesFactoryBean  直接使用该类的bean配置,设置其locations属性可以达到一个和上面一样加载多个配置文件的目的

在代码中引用Properties中的值如下:

将配置整体赋给Properties类型的类变量


3. PropertyOverrideConfigurer 

PropertyPlaceholderConfigurer 不同的是: PropertyOverrideConfigurer 利用属性文件的相关信息,覆盖XML 配置文件中定义。即PropertyOverrideConfigurer 允许XML 配置文件中有默认的配置信息。 
如果PropertyOverrideConfigurer 的属性文件有对应配置信息,则XML 文件中的配 置信息被覆盖否则,直接使用XML 文件中的配置信息。使用PropertyOverrideConfigurer 属性文件的格式如下
beanName.property=value 
beanName 是属性占位符企图覆盖的bean 名, property 是企图覆盖的属性名。例如 

容器自动注册propertyOverriderbean,读取dbconn.properties 文件中的属性,并用于覆盖目标bean 的属性。其配置文件中dataSourcebean 的属性完全是随意输入的,最终被属性文件的配置覆盖,其属性文件如下:

注意属性文件的格式必须是beanName.property=value  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值