首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Spring 三中PropertySourcesPlaceholderConfigurer 的容易遗漏用法

2013-01-26 
Spring 3中PropertySourcesPlaceholderConfigurer 的容易遗漏用法Spring 3中PropertySourcesPlaceholderCo

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

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

用法:

<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>


  如果是用bean注入,则为:
@Value('${jdbc.driverClassName}') private String driverClassName;@Value('${jdbc.url}')             private String dbUrl;@Value('${jdbc.username}')        private String dbUserName;@Value('${jdbc.password}')        private String dbPassword;@Beanpublic BasicDataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(dbUrl); dataSource.setUsername(dbUserName); dataSource.setPassword(dbPassword); return dataSource;}


    介绍下特别用法,比如要假设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
  

热点排行