[Spring Boot][Annotation] @Value

CodeKong의 기술 블로그·2023년 10월 12일
1
post-thumbnail

📌 @Value의 필요성

✅ GitHub나 협업 툴을 사용하다보면 공개적으로 올릴 수 없는 값 들(개인 키 등..)이 있습니다.
➡️ 그 값들을 안전하게 주입해주고 숨겨주기 위해 사용합니다.

✅여러 환경에서 프로그램을 빌드할 경우 주입 값이 달라질 수 있습니다.
➡️ 이러한 값들을 내부 코드의 수정없이 변경할 수 있게 해줍니다.


💡 @Value 분석

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {

	/**
	 * The actual value expression such as <code>#{systemProperties.myProp}</code>
	 * or property placeholder such as <code>${my.app.myProp}</code>.
	 */
	String value();

}

Target ➡️ 필드, 메서드, 파라미터, 어노테이션
Retention ➡️ 런타임동안


💡 @Value 사용예제

application.yml

API:
  Fedex:
    grant_type: client_credentials
    client_id: 실제값
    client_secret: 실제값

⭐️ 저는 물류사의 API를 분석하는 프로젝트 중이라 해당 KEY들을 관리했습니다!!

@Service
public class FedexService {

	...
    
    @Value("${API.Fedex.grant_type}")
    private String grant_type;

    @Value("${API.Fedex.client_id}")
    private String client_id;

    @Value("${API.Fedex.client_secret}")
    private String client_secret;
    
    ...
}

⭐️ 이와 같이 필드에 Value 어노테이션에 정확한 경로명을 기입해주시면 됩니다!

0개의 댓글