我的 spring xml 文件中有多个属性文件源,它们具有不同的顺序值,有些是可选的。
- application.properties - 在类路径中,保存默认(后备)属性(最低优先级)
- [HOSTNAME].properties - 在类路径中,保存特定于该主机名的属性(更高优先级)
- 通过 jndi 中的值加载的属性文件 - 在 via jndi 中指定的位置,最高优先级。
换句话说,我可以用 .properties 中的属性覆盖 application.properties 中设置的默认属性,然后通过 jndi 查找其位置的属性文件依次覆盖这些值。
不过,我希望 spring 能够通过某种方式为我提供所有属性的解析值列表。有人知道我该怎么做吗?
我很容易获得特定属性的值,但我真正需要的是所有已解析属性的列表。
最佳答案
我有两个建议:
- 您可以使用方法
processProperties
覆盖类PropertyPlaceholderConfigurer
以填充所有已解析的属性。列出了一个示例 here . - 由于
PropertyPlaceholderConfigurer
实现了 Spring 的Ordered
接口(interface),您可以拥有多个属性占位符;然后,按照应在您的应用程序中的顺序为它们分配order
。最后,已经扩展了该类,您将可以按应加载的顺序访问所有已解析的属性。
关于java - 在 Spring 中列出已解析的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205964/