Spring学习笔记(十三)、使用外部属性文件

1、Spring配置文件里使用外部属性文件:

1)、在Spring配置文件中配置数据源或邮件服务器等资源数据时,会直接把账号密码直接写在配置文件中,一种更好的做法是把这些配置信息独立到一个外部属性文件中,并在Spring文件中通过${username}这样的方式来引用属性文件中的属性项。
2)、好处:一是如果多个应用公用一个资源配置信息,一旦资源信息修改,只需要修改属性文件一处,而不用修改多处Spring配置文件。二是维护和部署方便,如果需要修改某个参数,不需要关注结构复杂信息量大的Spring配置文件

2、Spring怎么使用外部属性文件:

1)、Spring提供一个PropertyPlaceholderConfigurer,它能使Bean(比如数据源Bean)在配置时引用外部属性文件。

3、原来的写法:

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
			<value>jdbc:oracle:thin:@10.10.0.85:1521:ora10</value>
		</property>
		<property name="username">
			<value>admin</value>
		</property>
		<property name="password">
			<value>123456</value>
		</property>
	</bean>

 4、使用外部属性文件后jdbc.properties:

db.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@xxx.xxx.xx.xxx:21521:ora10
db.username=admin
db.password=123456
	<!-- 引入外部数据库属性文件 -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:com/sxit/config/jdbc.properties</value>
		</property>
	</bean>

	<!-- 数据源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName">
			<value>${db.driver}</value>
		</property>
		<property name="url">
			<value>${db.url}</value>
		</property>
		<property name="username">
			<value>${db.username}</value>
		</property>
		<property name="password">
			<value>${db.password}</value>
		</property>
	</bean>

5、PropertyPlaceholderConfigurer属性:

1)、locations:如果只有一个外部属性文件直接用location指定就可以了,如果是多个属性文件,则可通过如下方式配置:
		<property name="locations">
			<value>classpath:com/zjy/gpx/config/dbconfig.properties1</value>
			<value>classpath:com/zjy/gpx/config/dbconfig.properties2</value>
			<value>classpath:com/zjy/gpx/config/dbconfig.properties3</value>
			<value>classpath:com/zjy/gpx/config/dbconfig.properties4</value>
		</property>
2)、fileEccoding:属性文件的编码格式:
		<property name="fileEncoding">
			<value>utf-8</value>
		</property>
3)、order:如果配置文件中定义了多个PropertyPlaceholderConfigurer,可根据该属性指定优先顺序:
		<property name="order" value="1" />
4)、placeholderPrefix:占位符前缀,“${”是默认的占位符前缀,可根据需要改为其他前缀符:
		<property name="placeholderPrefix" value="#{" />
5)、placeholderSuffix:占位符后缀,默认为“}”:
		<property name="placeholderSuffix" value="*" />

 6、还可以通过context命名空间定义属性文件:

<context:property-placeholder location="classpath:com/sxit/config/jdbc.properties"/>

   

猜你喜欢

转载自luan.iteye.com/blog/1722039