2017-12-29 13 views
0

스프링 부트에서 POJO에 속성을 바인딩하는 방법은 무엇입니까?POJO에 대한 바인딩 속성 (@ConfigurationProperties 스타일)

  • POJO 클래스는 제 3 자 라이브러리 클래스이므로 여기에 @ConfigurationProperties를 넣을 수 없습니다.
  • 동일한 클래스의 인스턴스가 여러 개있을 수 있으며 속성 이름 접미사가 삭제됩니다.
  • 빈으로 등록 할 필요가 없습니다. 대부분의 인스턴스는 런타임에 작성됩니다.
  • 유효성 검사, 형식화 된 구문 분석, 편안한 이름, 컬렉션, 중첩 된 클래스, 접두사/접미사 지원, 알 수없는 속성 무시 기능.

나는 DataBinder와 같은 몇 가지 유틸리티 클래스를 알고 있지만 도움이 될만한 방법이 있습니다. 미리 감사드립니다.

답변

0

당신은 제 3 자 POJO를 확장하고 다음과 같이 자신의 클래스에 @ConfigurationProperties를 추가 할 수

@ConfigurationProperties(prefix = "myNamespace") 
@Component 
public class CustomProperties1 extends ThirdPartyProperties { 

} 

그런 다음 myNamespace.propertyName=value 같은 특성을 가진 제 3 자 POJO의 모든 속성을 구성 할 수 있습니다.

그러나 구성 속성의 이름을 제어 할 수 없으므로이 방법을 사용할 때는주의해야합니다. 타사 라이브러리에서 필드 이름이 변경되면 구성 매개 변수가 더 이상 바인드되지 않습니다.