Static 필드에 @Value 사용
Static 필드에 @Value 값은 바인딩 될 수 없습니다. 정확한 이유는 잘 모르지만 제 생각엔 java에서 가장 먼저 jvm 이 가장 먼저 메모리에 띄우는 것들이 static 인데 메모리에 이미 올라간 상태로 @Value 로 바인딩하려니 안되는 것 같습니다. 쉽게 말해 메모리에 올라가는 순서 때문에 발생한 문제인것 같습니다. ( 정확한 이유는 좀 더 공부를 해 봐야겠습니다)
해결
방법은 간단합니다. setter로 바인딩 해주면 그만입니다.
@Component
public class EncryptionUtil {
public static String key;
@Value("${enc.key}"})
public void setKey(String value) {
key = value;
}
}
'Springboot' 카테고리의 다른 글
[JPA] @GeneratedValue의 Auto_increment 미적용 될때 (0) | 2023.08.17 |
---|---|
SpringBoot/java POI 이용해서 엑샐 생성하기 (0) | 2023.08.17 |
springboot + fluentd + mongoDB 연동 (0) | 2023.08.16 |
spring boot logback으로 error 로그만 파일로 남기기 (0) | 2023.08.16 |
Grafana 활용기(Spring Boot) (0) | 2023.08.16 |