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文件里的配置而使用的系统环境中的值。