欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring 3中PropertySourcesPlaceholderConfigurer 用法,,Spring 3中Pro

来源: javaer 分享于  点击 36253 次 点评:270

Spring 3中PropertySourcesPlaceholderConfigurer 用法,,Spring 3中Pro


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;  @Bean  public 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

相关栏目:

用户点评