Spring-7:使用外部属性文件

来源:互联网 发布:cn域名的ns记录 编辑:程序博客网 时间:2024/06/04 19:30
在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean 配置相分离。
Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器, 这个处理器允许用户将 Bean 配置的部分内容外移到属性文件中. 可以在 Bean 配置文件里使用形式为 ${var} 的变量, PropertyPlaceholderConfigurer 从属性文件里加载属性, 并使用这些属性来替换变量。

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

使用方法:

首先需要创建一个属性文件

这里我们以car的配置为例:

在src目录下右击-new-file  创建文件名为:car.properties,然后在该文件中写入:


brand="land rover"

corp="BeiJing"

price=600000
maxSpeed=260


然后需要在xml文件中注册 PropertyPlaceholderConfigurer

在Spring2.0中:


在Spring 2.5 之后: 可通过 <context:property-placeholder> 元素简化这个步骤:

1、引入context命名空间:


2、导入属性文件

<!-- 导入属性文件 --><context:property-placeholder location="classpath:car.properties"/>


3、使用外部属性文件中的属性:

<!-- 使用外部属性文件中的属性 --><bean id="car" class="com.atguigu.spring.beans.Car"><property name="brand" value="${brand}"></property><property name="corp" value="${corp}"></property><property name="price" value="${price}"></property><property name="maxSpeed" value="${maxSpeed}"></property></bean>

这里要注意两点:

一是:在properties文本文件中数值类型不要加引号,字符串类型需要用引号引起来;

二是:在xml配置文件中,引用的变量仍需要用双引号引起来。比如:value="${brand}"


使用外部属性文件后,如果属性值发生变化,只需要修改properties文件即可,不需要修改源代码,增强了应用的可维护性。

0 0