Spring
스프링 부트 - static 멤버에 @value Injection 하기
구티맨
2021. 12. 7. 12:01
property에 있는 값을 @Value를 사용하여 멤버 변수에 값을 Injection하여 자주 사용을 합니다.
이때 static 멤버에 Injection을 하려고 하면 되지가 않습니다.
String 변수를 예로 들면, null로 되어있습니다.
이유는 Spring에서 @Value 가 static field에 대해 지원하지 않기 때문입니다.
public class Inject {
@Value("${file.path}")
private static String PATH; // null
}
static 변수에 Injection을 하려면, 아래와 같이 setter injection으로 값을 할당할 수 있습니다.
public class Inject {
private static String PATH;
@Value("${file.path}")
public void setPath(String path){
Inject.PATH = path;
}