두 손끝의 창조자

ConfigurationProperties 으로 안정적인 설정값 사용하기 본문

Spring

ConfigurationProperties 으로 안정적인 설정값 사용하기

codinglog 2023. 9. 14. 10:46

spring boot 를 사용하면 application.properties 에 속성을 설정하여 @Value 애노테이션으로 참고하여 사용할 수 있다. 인텔리제이 유료버전에서는 속성값 검증이 어느정도 되는데 프로퍼티 작성시에 자동 완성 기능이 동작하지는 않는다.

속성에 대한 구조, 항목을 클래스로 정의하고 appication.properies 에 정의할 때 자동 완성 기능을 할 수 있도록 해보자.

spring-boot-configuration-processor 추가

annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'

프로퍼티 클래스 정의

@ConfigurationProperties(prefix = "cothe")
public class MyProperty {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

프로퍼티 클래스 정의 스캔 설정

@SpringBootApplication
@ConfigurationPropertiesScan // 추가
public class ConfigPropertiesPracApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigPropertiesPracApplication.class, args);
    }

}

설정 값 넣기

cothe.name=KIM

설정 값 사용

public class DomainService {
    private final MyProperty myProperty;

    public DomainService(MyProperty myProperty) {
        this.myProperty = myProperty;
    }

    public String getMyProperty() {
        return myProperty.getName();
    }
}
반응형
Comments