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

2-1
만약 environment variable 값으로 사용하고 싶지 않다면api-key: kakao: 여기에 key값을 입력해주세요.이렇게 직접 yaml파일에 값을 적은 후 .gitignore에 applicaiton.yml을 적어주면 된다. 깃허브가 해당 파일은 커밋 목록에 올리지 않는다.
@Value("${api-key.kakao}")
private String key;
해당 class를 외부에서 new 생성자로 생성해 사용하면 spring bean이 관리해주는 객체로 인식하지 못하기 때문에 @Valid를 사용한 값이 null값이 된다.
@Valid를 import할 땐 org.springframework.beans.factory.annotation.Value를 사용해야 한다.