當使用spring framework後, 我們一般會把db connection的信息寫在spring的bean config xml裡面。
例如:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="testUser1"></property>
<property name="password" value="12345678"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://homeServer:3306"></property>
</bean>
</beans>
但是在項目中, 我們的程序一般在不同的環境中運行,如果每次都去修改xml就會出現如下的問題。
1.容易出錯
2.需要重新打包(xml在包裡的話)
3.程序猿會見到密碼等敏感信息。
所以我們一般會把項目deployment的信息例如db Conection寫在 外部的1個 config file中。
/home/gateman/Studies/java_start/configfiles/MySQL.config
user=testUser1
password=12345678
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://homeServer:3306
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:/home/gateman/Studies/java_start/configfiles/mysql.config"></property>
</bean>
注意 上面的location value就是配置文件的位置
file:xxx 代表絕對路徑
classpath: xxx 代表類路徑
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:/home/gateman/Studies/java_start/configfiles/mysql.config"></property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="driverClass" value="${driver}"></property>
<property name="jdbcUrl" value="${url}"></property>
</bean>
</beans>