Spring 属性占位符配置器 PropertyPlaceholderConfigurer

 PropertyPlaceholderConfigurer 是BeanFactoryPostProcessor 的实现类,它可用于读取
Java Properties 文件中属性,然后插入BeanFactory 定义中。通过使用PropertyPlaceholderConfigurer,
可以将Spring 配置文件的某些属性放入属性文件中配置,从而可以修改属性文件。而修改Spring 配置时,
无须修改BeanFactory 的主XML 定义灭件(比如说数据库的urls、用户名和密码)。
使用BeanFactoryPostProcessor在修改某个部分的属性时,可以无须打开Spring 配置文件,
从而保证不会将新的错误引入Spring 配置文件。看下面的配置文件:


''http://www.springframework.org/dtd/spring-beans.dtd''>
<1-- Spr工ng 配置文件的根元素一〉





dbconn.properties

class= "org.springframework.beans.factory.config.PropertyOverrideConfigurer">


dbconn.properties



<'…配置本地的DBCP 数据源一〉
class="org.springframework.jdbc.datasource.DriverManager
DataSource" destroy-method="close">






容器自动注册propertyOverriderbean,读取dbconn.properties 文件中的属性,并用于
覆盖目标bean 的属性。其配置文件中dataSourcebean 的属性完全是随意输入的,最终被
属性文件的配置覆盖,其属性文件如下:
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql://wonder:3306/j2ee
dataSource.username=root
dataSource.password=32147

注意属性文件的格式必须是:
beanName.property=value
也就是说, dataSource必须是容器中真实存在的bean 名,否则程序将出错。
注意:仅仅察看XML 定义文件,程序无法知道BeanFactory定义是否被覆盖;当有
多个PorpertyOverrideConfigurer对同一个bean 属性定义了覆盖,则最后一个覆盖有效。

你可能感兴趣的:(Spring基础)