더북(TheBook)

클래스 하나에 프로퍼티 모으기

ReadingListController@ConfigurationProperties 애너테이션을 붙여도 잘 작동하지만 가장 이상적인 방법은 아닐 것이다. 사실 ReadingListController는 아마존과 거의 관련이 없는데도 프로퍼티 접두어가 amazon인 것이 좀 이상하지 않은가? 더구나 추후 ReadingListController를 개선할 때 아마존과 관련 없는 프로퍼티를 구성해야 할 수도 있다.

ReadingListController에 구성 프로퍼티를 포함하기보다는 별도의 빈에 @Configuration Properties 애너테이션을 붙이고 모든 구성 프로퍼티를 이 빈으로 모으는 편이 더 나을 것이다. 예를 들어 코드 3-13의 AmazonProperties는 아마존에 특화된 구성 프로퍼티를 보여 준다.

 

코드 3-13 빈 안에 구성 프로퍼티 포함(AmazonProperties)

package readinglist;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(“amazon”) // “amazon” 접두어가 붙은 프로퍼티 주입
public class AmazonProperties {
 
    private String associateId;
 
    public void setAssociateId(String associateId) { // associateId 세터 메서드
        this.associateId=associateId;
    } 
 
    public String getAssociateId() {
        return associateId;
    }
 
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.