[개발 일기] 2025.05.14 - ConfigurationProperties와 Setter

2025. 5. 14. 12:49·개발 일기

💡 개요

 

@Setter  
@ConfigurationProperties(prefix = "naver")

 

확실한 이유는 모르겠지만, @Setter가 없다면 @ConfigurationProperties를 사용하더라도 application.yml에 정의된 값을 객체에 바인딩할 수 없다.

 

 

오늘은 그 이유에 대해 정리해 보자.

 

 

 

🛠️ ConfigurationProperties

 

일단 ConfigurationProperties가 뭔지부터 정리 해보자.

 

 

@ConfigurationProperties는 *.properties 또는 *.yml 파일에 정의된 설정 값을 자바 클래스의 필드에 바인딩해 주는 애노테이션이다.

 

 

위 코드를 보면 prefix가 naver로 설정되어 있는데, 이것은 설정 파일에 있는 naver 하위에 있는 설정 값들을 모두 조회하는 것이다. (naver.client-id, naver.secret-id, …)

 

 

 

⚙️ ConfigurationProperties에 Setter가 필요한 이유

 

이러한 객체에 Setter가 필요한 이유는 기본적으로 @ConfigurationProperties는 ConfigurationPropertiesBinder라는 컴포넌트를 통해 값을 바인딩하기 때문이다

 

 

 

어노테이션의 공식 문서를 보면 확실하게 값을 할당하기 위해선 Setter나 @ConstructorBinding을 사용해야 한다고 나온다.

 

 

처음 보는 어노테이션을 사용할 땐, 반드시 공식문서나 내부 설명을 찾아보자..

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.05.16 - PSA (Portable Service Abstraction)  (0) 2025.05.16
[개발 일기] 2025.05.15 - 클래스마다 무조건 인터페이스를 생성??  (0) 2025.05.15
[개발 일기] 2025.05.13 - 자바 Optional 정리  (0) 2025.05.13
[개발 일기] 2025.05.12 - 분산 저장 (파티셔닝, 샤딩)  (0) 2025.05.12
[개발 일기] 2025.05.11 - Redis 만료 원리  (0) 2025.05.11
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.05.16 - PSA (Portable Service Abstraction)
  • [개발 일기] 2025.05.15 - 클래스마다 무조건 인터페이스를 생성??
  • [개발 일기] 2025.05.13 - 자바 Optional 정리
  • [개발 일기] 2025.05.12 - 분산 저장 (파티셔닝, 샤딩)
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.05.14 - ConfigurationProperties와 Setter
상단으로

티스토리툴바