Java 使用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

我有一个带有xml配置(v4.0.8)的Spring应用程序,在这里我需要动态访问属性,而不是使用
@Value
注释。我尝试使用这些方法,其中一种方法是将
@ConfigurationProperties
与一个映射一起使用,该映射提供映射中的所有属性,另一种方法是使用
环境.getProperty

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

我正在使用jasypt中的
EncryptablePropertySourcePlaceholderConfigurer
添加属性,jasypt是对加密属性值进行解密的
PropertySourcePlaceholderConfigurer
的简单实现
PropertySourcesPlaceholderConfigurer
没有将属性添加到
环境中。propertySources
我不知道如何扩展它,而不是使用jasypt实现并手动将它们添加到属性源中

注二:

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