首页 > 代码库 > spring外部化配置

spring外部化配置

例如

1 <bean id="dataSource"2 3   class="....."4 5   p:username="aa"6 7   p:password="11"8 9 >

以外部文件配置化的方式,配置属性。

在db.properties

jdbc.username=aajdbc.password=22

所以以上的bean可以写成

1 <bean id="dataSource"2 3   class="....."4 5   p:username="${jdbc.username}"6 7   p:password="${jdbc.password}"8 9 >

1.占位符变量替换

在spring中通过 配置占位符变量

 1 <!-- ignore 指定找不到文件 location指向的标签 不抛异常--> 2 <!--  properties-ref 指向默认的属性 --> 3 <context:property-placeholder 4     location="file://myconfig.properties" 5     ignore-resource-not-found="true" 6     ignore-unresolvable="true" 7     properties-ref="defaultConfiguration" 
system-properties-mode="OVERRIDE"
8 /> 9 10 <!--配置默认输入的属性-->11 <util:properties id="defaultConfiguration"12 <prop key="jdbc.url"> jdbc:mysql:......</prop> 13 <prop key="jdbc.username">aa</prop>14 <prop key="jdbc.password">11</prop> 15 >

其中 属性 system-properties-mode=""

FALLBACK :如果不能从属性文件中解析占位符变量,使用系统属性

NEVER: 不使用系统属性来解析占位符变量

OVERRIDE:相对配置文件优先使用系统 属性

2.重写属性

例如硬编码如下

 <bean id="dataSource"    class="....."    p:username="aa"    p:password="11"  >

通过在spring中配置
1 <!--  以下会把硬编码的内容重写  -->2 <component:property-override3   location="classpath:/db.properties"4 5 />