spring中使用外部属性文件

使用外部属性文件

  • 在配置文件里配置Bean是,有时需要在Bean的配置里混入系统部署的细节信息(例如:文件路径,数据源配置信息等)而这些部署细节实际上需要和Bean配置相分离

  • spring提供了一个PropertyPlaceholderConfigurer的BeanFactory后置处理器,这个处理器允许用户将Bean配置的部分内容外移到属性文件中,可以在Bean配置文件里使用形式为${var}的变量PropertyPlaceholderConfigurer从属性文件里加载属性,并使用这些属性来替换变量

  • spring还允许在属性文件中使用${propName},以实现属性之间的相互引用

 

来看一个示例,有以下配置

我们添加了所支持的jar包后,配置了一个数据源

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
	<property name="user" value="root"></property>
	<property name="password" value="178313"></property>
	<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
	<property name="jdbcUrl" value="jdbc:mysql:///test"></property>
</bean>

 

获得bean后运行测试结果

得到结果,运行正常,说明配置没问题,但是一般不推荐这么做。此时我们应该引入外部配置文件信息

 

添加一个properties,实例如下

然后在配置文件里这样配置

<!-- 导入属性文件 -->
<context:property-placeholder location="classpath:db.properties"/>
	
<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="${driverclass}"></property>
	<property name="jdbcUrl" value="${jdbcUrl}"></property>
</bean>

然后测试运行得到结果

 

这个时候在进行系统部署和更换底层数据库的时候,直接修改属性文件就可以,修改属性文件的成本比修改spring配置的文件的成本要低得多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值