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

네, 모든 속성을 수동으로 필터링 할 것입니다. 고마워요 내가 닦은 것보다 깨끗한 방법입니다 :) – Kapitalny