Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量

 

前一篇文章说了关于spring中PropertyPlaceholderConfigurer类的使用http://blog.csdn.net/kongxx/archive/2010/08/26/5842009.aspx

但是在有些情况下我们的属性并不是配置在properties文件中,而是通过Java启动时的-Dname=value参数设置在java系统环境中,此时如果在java里我们可以使用System.getProperty(name)来获取属性值,而在spring里我们就可以通过PropertyPlaceholderConfigurer类来获取。

 

1. 首先创建一个Java Bean

 

 

 

2. 创建spring.xml文件

 

配置文件中使用${name},${propx}来说明需要使用properties文件中的内容替换

 

3. 创建spring.properties文件,这里变量可以递归引用当前properties文件中定义的别的变量

 

 

 

4. 写一个测试程序

 

这里去我在启动前通过System.setProperty(key)来模拟java中通过-D传递参数的情况。运行测试程序,输出如下:

test.MyBean@1649b44[name=kongxx,prop1=111,prop2=222,prop3=333]

这里其实spring是忽略的properties文件里的配置而使用的系统环境中的值。

 

 

 

posted @ 2010-08-26 22:43  程序员天下  阅读(508)  评论(0编辑  收藏  举报