我的spring context.xml文件中有属性占位符
<bean id="propertyConfigurer" class="com.techpleiad.poc.RMCPropertyUtil">
<property name="basenames" value="file:${config.file.dir}/prop_application" />
<property name="defaultEncoding" value="UTF-8" />
<property name="cacheSeconds" value="30"></property>
</bean>
并且此属性' config.file.dir '未得到解决。
'config.file.dir'是环境变量,当我调试代码并检查基本名称时,文件路径就像它一样。' {config.file。 DIR} / prop_application
我需要知道在解析这些属性时涉及哪些spring代码/类。 我如何调试和解决这个问题?
答案 0 :(得分:2)
您需要注册PropertySourcesPlaceholderConfigurer
并引用您的财产来源(或者不是因为这是一个隐式添加的环境属性)。
使用XML,您可以使用
执行此操作<context:property-placeholder location="classpath:spring.properties" />
使用Java配置,只需定义一个static
@Bean
带注释的方法,该方法返回PropertySourcesPlaceholderConfigurer
。
答案 1 :(得分:0)
您可以尝试使用Spring SpEL来获取系统属性
#{systemProperties['config.file.dir']}
要阅读环境变量,请使用
#{systemEnvironment['config.file.dir']}
systemEnvironment
属性包含运行程序的计算机上的所有环境变量。同时,systemProperties
包含我们使用-D
参数在应用程序启动时在Java中设置的所有属性。