설정 주입 90%는 @Value #shorts #SAP #CAP
Moderator
· 조회 1
@Value란?
CAP for Java는 Spring Boot 기반이므로 @Value 어노테이션을 그대로 사용할 수 있습니다. application.yaml에 정의된 설정값을 Java 필드 한 줄로 바로 주입합니다.
설정 파일 작성
# application.yaml
myapp:
endpoint: https://api.example.com
retryCount: 3
@Value로 주입하기
@Service 또는 @Component 클래스 안에서 필드 위에 한 줄만 추가하면 됩니다.
@Service
public class MyService {
@Value("${myapp.endpoint}")
private String endpoint;
@Value("${myapp.retryCount:5}")
private int retryCount; // 기본값 5
public void run() {
// endpoint, retryCount 바로 사용
}
}
기본값 지정
콜론(:) 뒤에 기본값을 쓰면 yaml 키가 없을 때 폴백으로 사용됩니다. 개발/운영 환경마다 다른 값을 쓸 때 유용합니다.
@Value("${myapp.timeout:30}")
private int timeout;
주의사항
Spring 빈이 아닌 일반 POJO에서는 주입이 되지 않습니다. new MyService()처럼 직접 생성한 객체는 Spring 컨텍스트 밖이므로 @Value가 동작하지 않습니다.
핵심 한 줄
@Value("${키:기본값}") 한 줄로 yaml 설정을 Spring 빈 필드에 바로 주입한다.