返回顶部

收藏

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;  

@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

标签:java,Spring,PropertySourcesPlaceholderConfigurer

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. coderbee 发表 2014-07-19 02:04:44 Spring MVC 与 web开发
  2. 懒散狂徒 发表 2014-07-25 01:09:56 Spring资源加载
  3. 博主 发表 2018-09-20 03:25:16 How to Avoid NullPointerException
  4. zhuangli 发表 2018-10-04 01:52:58 框架设计上的十点基本常识
  5. 博主 发表 2017-04-26 15:51:05 Multiple Datasource
  6. root 发表 2015-05-02 01:38:01 java框架篇—spring IOC 实现原理
  7. zhuangli 发表 2017-07-12 00:18:33 spring boot构建微服务框架
  8. hanze 发表 2017-07-18 10:32:13 spring-boot-nutz-starter 1.r.62发布
  9. chengjf 发表 2015-03-24 05:35:24 Spring初探
  10. Harries 发表 2018-01-18 15:04:49 使用 Spring Boot 2.0 + WebFlux 实现 RESTful API
  11. 漠然 发表 2015-07-19 03:36:21 Spring JDBCTemplate
  12. 博主 发表 2015-11-25 15:20:38 构建安全的Mobile API

发表评论