본문 바로가기

Tech/Debug

[Spring boot] @Vlaue로 불러온 외부설정 값이 null인 경우 해결 방법

동아리에서 진행하는 프로젝트 내에서 코드리뷰를 진행하고 있었고, 다음과 같은 피드백을 받게 되었다.

 

TOKEN_KEY는 우리가 만드려는 서비스에서 로그인이 성공적으로 완료되었을 때, 클라이언트에게 넘겨주는 jwt의 키 값으로 사용된다.

자주 사용되기도 하고, 보안 측면에서도 따로 관리되야할 필요가 있기 때문에 application.yml로 따로 관리하기 위해 코드를 수정하였다.

 

@Value라는 어노테이션을 이용하면 외부 설정 파일에서 값을 Java 객체로 받아올 수 있었다.

방법은 아주 쉬운데 @Value(${})로 ${} 사이에 yml에 작성한 경로(?)를 입력하면 된다.

 

예를 들어, 위와 같이 yml에 작성을 했다면 다음과 같이 입력하면 된다.

 

이렇게 쉬운 길을 눈 앞에 두고, 나는 삽질을 하기 시작했다.

값이 잘 들어오나 확인을 하기 위해 로그를 찍어봤는데 아니나 다를까 null값이 나왔다.

 

원인은 @Value로 값을 받을 객체는 static이어서는 안된다는 것이다...

세상에 공짜는 없는 것 같다.. 오늘도 삽질하면서 배운다..ㅎ

 

[참고] https://cnpnote.tistory.com/entry/SPRING-Spring-Value-%EB%8A%94-%EC%A2%85%EC%A2%85-null%EC%9E%85%EB%8B%88%EB%8B%A4

반응형