在Spring中列出已解析的属性

时间:2012-04-18 08:50:38

标签: java spring

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

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

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

然而,我希望有一些方法让spring给出我所有属性的已解析值列表。有谁知道我怎么能这样做?

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

1 个答案:

答案 0 :(得分:1)

我有两点建议:

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