2016-11-21 11 views
0

私はすべての環境プロパティバリデータを作成しようとしています。私が望むのは、環境からすべての特性を取るだけです。春の環境プロパティバリデータ

(私はすでにここに、この発見:Spring: access all Environment properties as a Map or Properties object)を

次私はenvironment.getProperty(x)は したいといくつかのプロパティがnullの場合は、ちょうど私がそれらを追加し、Excpetionのメッセージとして投げたいすべてのプロパティに。

これはかなりうまくいきますが、 すべての依存関係の確認は、ロガーの初期化後、およびjpa/hibernateの初期化後に実行されます。

私は何とかそのアクションの前に環境豆にアクセスして "妥当化メカニズム"を取得できますか? アプリケーションを実行しないで環境を取る方法がありますか?

答えて

1
  1. 私が知っているように、すべてのプロパティをNULLでチェックするメカニズムはありません。 Java 8を使用している場合は、マップからNULLプロパティをフィルタできます。

A)

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

B)splitPropertiesMap.get(にBoolean.TRUEで

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

:たとえばあなたの特性は、地図yourPropertiesMapに集めすべてのリストは返されません。プロパティマップ。

  1. 私はそれが奇妙な問題だと思う、あなたのプロパティを確認する必要があります。

とにかく、コードを単純化するのに役立つことを願っています。

+0

はい、私はすべてのプロパティを手動でフィルタリングすることにしています。ありがとう私はdiidよりもクリーンな方法です:) – Kapitalny