✅ GitHub나 협업 툴을 사용하다보면 공개적으로 올릴 수 없는 값 들(개인 키 등..)이 있습니다.
➡️ 그 값들을 안전하게 주입해주고 숨겨주기 위해 사용합니다.✅여러 환경에서 프로그램을 빌드할 경우 주입 값이 달라질 수 있습니다.
➡️ 이러한 값들을 내부 코드의 수정없이 변경할 수 있게 해줍니다.
@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 ➡️ 런타임동안
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 어노테이션에 정확한 경로명을 기입해주시면 됩니다!