1.有些參數在某些階段中是常量java
好比 :a、在開發階段咱們鏈接數據庫時的鏈接url,username,password,driverClass等 mysql
b、分佈式應用中client端訪問server端所用的server地址,port,service等 web
c、配置文件的位置spring
2.而這些參數在不一樣階段之間又每每須要改變sql
好比:在項目開發階段和交付階段數據庫的鏈接信息每每是不一樣的,分佈式應用也是一樣的狀況。數據庫
指望:能不能有一種解決方案能夠方便咱們在一個階段內不須要頻繁書寫一個參數的值,而在不一樣階段間又能夠方便的切換參數配置信息分佈式
解決:spring3中提供了一種簡便的方式就是context:property-placeholder/元素url
只須要在spring的配置文件裏添加一句:<context:property-placeholder location="classpath:jdbc.properties"/> 便可,這裏location值爲參數配置文件的位置,參數配置文件一般放在src目錄下,而參數配置文件的格式跟java通用的參數配置文件相同,即鍵值對的形式,例如:spa
#jdbc配置orm
test.jdbc.driverClassName=com.mysql.jdbc.Driver
test.jdbc.url=jdbc:mysql://localhost:3306/test
test.jdbc.username=root
test.jdbc.password=root
行內#號後面部分爲註釋
應用:
1.這樣一來就能夠爲spring配置的bean的屬性設置值了,好比spring有一個jdbc數據源的類DriverManagerDataSource
在配置文件裏這麼定義bean:
<bean id="testDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${test.jdbc.driverClassName}"/>
<property name="url" value="${test.jdbc.url}"/>
<property name="username" value="${test.jdbc.username}"/>
<property name="password" value="${test.jdbc.password}"/>
</bean>
2.甚至能夠將${ }這種形式的變量用在spring提供的註解當中,爲註解的屬性提供值