使用Spring

时间:2015-10-05 05:27:46

标签: java spring properties-file jasypt

我有一个带有xml配置的Spring应用程序(v4.0.8),我需要动态访问属性而不是使用@Value注释。我尝试使用这方法,其中一个使用@ConfigurationProperties一个Map,它给了我地图中的所有属性,另一个方法是使用Environment.getProperty

这两种方法都是从Environment的propertySources获取属性。不幸的是,它包含5个属性源,包括系统属性等,但不包含我的属性文件。因此我无法访问我的房产。

我正在使用来自jasypt的EncryptablePropertySourcesPlaceholderConfigurer添加我的属性,这是一个解密加密属性值的PropertySourcesPlaceholderConfigurer的简单实现。 PropertySourcesPlaceholderConfigurer没有向Environment.propertySources添加属性,我无法弄清楚如何自己扩展它而不是使用jasypt实现并手动将它们添加到属性源。

两个注释:

  • @Value注释工作正常,因为它不使用Environment但在bean创建期间通过配置器。这没有问题。
  • 我有一个spring boot应用程序,我通过监听spring ApplicationEnvironmentPreparedEvent并将我的属性添加到Environment而不是实现PropertySourcesPlaceholderConfigurer来实现我的目标,附加到Environment.propertySources。但这仅适用于Spring启动应用程序,而我的遗留应用程序不是Spring启动应用程序。

0 个答案:

没有答案