2016-11-21 97 views
0

我正在尝试使某种所有环境属性验证程序。我想要的只是从环境中获取所有属性。春季环境属性验证程序

(我已经发现这个在这里:Spring: access all Environment properties as a Map or Properties object

下一页上我想使environment.getProperty(x)的 所有属性如果某些属性是null,则只是我想补充他们扔的错误时抛出的消息。

虽然工作的很好,但是.. 检查所有依赖关系是在记录器初始化和jpa/hibernate初始化之后执行的。

我可以以某种方式获得我的“验证mechanizm”之前,该行动和访问环境bean? 或者,也许有没有运行应用程序可以采取环境?

回答

1
  1. 据我所知,没有通过NULL检查你的属性的机制。如果您使用Java 8,则可以从Map中过滤NULL属性。例如收集在地图yourPropertiesMap您的属性:

一个)

Map<String, String> notNullPropertiesMap = yourPropertiesMap.entrySet() 
      .stream() 
      .filter(entry -> Objects.nonNull(entry.getValue())) 
      .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); 

B)

Map<Boolean, List<Map.Entry<Object, Object>>> splitPropertiesMap = yourPropertiesMap.entrySet() 
      .stream() 
      .collect(Collectors.partitioningBy(entry -> Objects.nonNull(entry.getValue()))); 

第二示例splitPropertiesMap.get(Boolean.TRUE)将返回列表全部非NULL属性地图。

  1. 我认为这是某种奇怪的问题,你需要检查你的属性。

无论如何,我希望它会帮助你简化你的代码。

+0

是的,我想我会手动过滤所有属性。谢谢,这是更清洁的方式比我diid :) – Kapitalny