Java 使用Spring动态访问属性
我有一个带有xml配置(v4.0.8)的Spring应用程序,在这里我需要动态访问属性,而不是使用Java 使用Spring动态访问属性,java,spring,properties-file,jasypt,Java,Spring,Properties File,Jasypt,我有一个带有xml配置(v4.0.8)的Spring应用程序,在这里我需要动态访问属性,而不是使用@Value注释。我尝试使用这些方法,其中一种方法是将@ConfigurationProperties与一个映射一起使用,该映射提供映射中的所有属性,另一种方法是使用环境.getProperty 这两种方法都是从环境的propertySources获取属性。不幸的是,它包含5个属性源,包括系统属性等,但不是我的属性文件。因此,我无法访问我的属性 我正在使用jasypt中的EncryptablePro
@Value
注释。我尝试使用这些方法,其中一种方法是将@ConfigurationProperties
与一个映射一起使用,该映射提供映射中的所有属性,另一种方法是使用环境.getProperty
这两种方法都是从环境的propertySources获取属性。不幸的是,它包含5个属性源,包括系统属性等,但不是我的属性文件。因此,我无法访问我的属性
我正在使用jasypt中的EncryptablePropertySourcePlaceholderConfigurer
添加属性,jasypt是对加密属性值进行解密的PropertySourcePlaceholderConfigurer
的简单实现PropertySourcesPlaceholderConfigurer
没有将属性添加到环境中。propertySources
我不知道如何扩展它,而不是使用jasypt实现并手动将它们添加到属性源中
注二:
注释工作正常,因为它不使用环境,而是在bean创建期间通过配置程序。这没问题@Value
- 我有一个spring boot应用程序,通过收听spring boot的
并将我的属性添加到环境中,而不是实现ApplicationEnvironmentPreparedEvent
,我可以实现附加到Environment.propertySources的目标。但这只适用于SpringBoot应用程序,而我的遗留应用程序不是SpringBoot应用程序PropertySourcesPlaceholderConfigurer