Appplication.yml에 민감한 값들을 정의해두고 이 파일을 깃 서브 모듈로 관리하도록 변경하는 과정에서,
프로젝트에 기존에 있던 ENV 클래스에 @Value
어노테이션을 통해 Appplication.yml에 정의된 값을 주입하도록 바꾸면서 static 변수에는 주입할 수 없다는 것이 생각났다.
Application.yml
ENV class
위와 같이 Static으로 선언된 변수에 Injection을 하려고 하면 주입이 되지 않아 null 값을 가지게 된다.
이런 경우 해당 클래스에 @Component 어노테이션을 달아 빈으로 등록해주고,
static이 아닌 setter 메서드를 선언한 후, 해당 setter에 주입해주면 해결된다.
ENV 클래스를 빈으로 등록
static이 아닌 setter 메서드 선언 후 여기에 주입
간단하게 main 메서드에서 sout으로 출력해봐서 잘 주입이 되었는지 확인해보았다.
이렇게 static 필드는 non-static setter를 선언한 후 해당 setter에 주입해주면 된다.