java - 在 Spring 中列出已解析的属性

标签 java spring

我的 spring xml 文件中有多个属性文件源,它们具有不同的顺序值,有些是可选的。

  • application.properties - 在类路径中,保存默认(后备)属性(最低优先级)
  • [HOSTNAME].properties - 在类路径中,保存特定于该主机名的属性(更高优先级)
  • 通过 jndi 中的值加载的属性文件 - 在 vi​​a jndi 中指定的位置,最高优先级。

换句话说,我可以用 .properties 中的属性覆盖 application.properties 中设置的默认属性,然后通过 jndi 查找其位置的属性文件依次覆盖这些值。

不过,我希望 spring 能够通过某种方式为我提供所有属性的解析值列表。有人知道我该怎么做吗?

我很容易获得特定属性的值,但我真正需要的是所有已解析属性的列表。

最佳答案

我有两个建议:

  1. 您可以使用方法 processProperties 覆盖类 PropertyPlaceholderConfigurer 以填充所有已解析的属性。列出了一个示例 here .
  2. 由于 PropertyPlaceholderConfigurer 实现了 Spring 的 Ordered 接口(interface),您可以拥有多个属性占位符;然后,按照应在您的应用程序中的顺序为它们分配 order。最后,已经扩展了该类,您将可以按应加载的顺序访问所有已解析的属性。

关于java - 在 Spring 中列出已解析的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205964/

相关文章:

Spring: session 作用域 bean 的序列化

java - Android 版 Google map 未呈现

java - 条件与对象等待/通知

Java Hibernate json无限递归与自引用类

java - Spring Data - 无法捕获服务层中的 DataIntegrityViolationException

带有基于 Hibernate Annotation 的配置的 Spring 数据 JPA

java - 卡尔曼滤波器和内部状态变量的质量

Java如何在窗口或JFrame的边框/周围放置一个按钮

java - 世代垃圾收集

java - 当返回值根据条件而变化时使用 Generic