spring外部化配置

例如

 <bean id="dataSource"

   class="....."

   p:username="aa"

   p:password="11"

 >

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

在db.properties

jdbc.username=aa
jdbc.password=22

所以以上的bean可以写成

 <bean id="dataSource"

   class="....."

   p:username="${jdbc.username}"

   p:password="${jdbc.password}"

 >

1.占位符变量替换

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

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

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

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

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

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

2.重写属性

例如硬编码如下

 <bean id="dataSource"

   class="....."

   p:username="aa"

   p:password="11"

 >
通过在spring中配置
 <!--  以下会把硬编码的内容重写  -->
<component:property-override
location="classpath:/db.properties" />
上一篇:Spring Boot 外部化配置(一)- Environment、ConfigFileApplicationListener


下一篇:基于云计算Iaas平台的ZStack