YAML 파일에 있는 데이터 @Value로 가져오기

한지연·2024년 4월 4일

깃허브에 커밋할 때 api키가 그대로 노출되면 문제가 발생한다. 그래서 properties나 yaml 파일에 숨겨야 하는데 그럼 이제 그런 생각이 든다. 그럼 api 키값은 어떻게 가져다 쓰라는 거지..?
@Value annotation을 가져다 쓰면 된다.

  1. yaml 파일에 값을 만들어준다.
api-key:
  kakao: ${kakao.key}
  1. environment variable에 값을 넣어준다

2-1
만약 environment variable 값으로 사용하고 싶지 않다면

api-key:
  kakao: 여기에 key값을 입력해주세요.

이렇게 직접 yaml파일에 값을 적은 후 .gitignore에 applicaiton.yml을 적어주면 된다. 깃허브가 해당 파일은 커밋 목록에 올리지 않는다.

  1. 사용하려는 변수 위에 @Value("${사용할 값})를 지정해준다.
    @Value("${api-key.kakao}")
    private String key;

❗️ 주의사항

  • 해당 class를 외부에서 new 생성자로 생성해 사용하면 spring bean이 관리해주는 객체로 인식하지 못하기 때문에 @Valid를 사용한 값이 null값이 된다.

  • @Valid를 import할 땐 org.springframework.beans.factory.annotation.Value를 사용해야 한다.

profile
배우고 활용하는 것을 즐기는 개발자, 한지연입니다!

0개의 댓글