spring外部化配置

例如

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

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

在db.properties

jdbc.username=aa
jdbc.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-override
3   location="classpath:/db.properties"
4 
5 />
原文地址:https://www.cnblogs.com/friends-wf/p/3922240.html