2016-11-21 143 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