Spring 3中PropertySourcesPlaceholderConfigurer 的...

Spring 3中PropertySourcesPlaceholderConfigurer是很常用的了,比如常见的是
一个数据连接文件,比如jdbc.properties,这个大家相信都很熟悉了,比如:


<context:property-placeholder location='database.properties'/>


用法:
[code="java"]


<bean id='dataSource' destroy-method='close'
    class='org.apache.commons.dbcp.BasicDataSource'>
  <property name='driverClassName' value='${jdbc.driverClassName}'/>
  <property name='url' value='${jdbc.url}'/>
  <property name='username' value='${jdbc.username}'/>
  <property name='password' value='${jdbc.password}'/>
</bean>
[/code]


  如果是用bean注入,则为:
[code="java"]


@Value('${jdbc.driverClassName}') private String driverClassName;
@Value('${jdbc.url}')             private String dbUrl;
@Value('${jdbc.username}')        private String dbUserName;
@Value('${jdbc.password}')        private String dbPassword;


@Bean
public BasicDataSource dataSource() {
 BasicDataSource dataSource = new BasicDataSource();
 dataSource.setDriverClassName(driverClassName);
 dataSource.setUrl(dbUrl);
 dataSource.setUsername(dbUserName);
 dataSource.setPassword(dbPassword);
 return dataSource;
}
[/code]


    介绍下特别用法,比如要假设sa是默认的username的值的话,可以这样:
<property name='username' value='${jdbc.username:sa}'/>
  就是用冒号隔开了


    另外一个特性为嵌套解析,比如:
phase=qa
jdbc.username.qa=abc
jdbc.username.dev=def
   则:
<property name='username' value='${jdbc.username.${phase}}'/>
   看明白了么?其实就是,比如很常见的是生产环境和测试环境不同的
数据库,则当phase为qa的时候,spring配置文件中自动会去设置
jdbc.username.qa的值为abc,当phase设置为dev的时候,自动设置
jdbc.username.qa的值为def
   

转载于:https://my.oschina.net/jackyrong/blog/103774

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值