본문 바로가기

공부/트러블슈팅

빈 생성 오류 트러블 슈팅

Error creating bean with name 'jwtUtil': Injection of autowired dependencies failed

오류가 났다. jwtUtil을 빈으로 만드는데 실패했다는 것 같다. autowired를 해줄 의존성이 없다? 그래서 구글링 한 결과 대부분 @Service와 같이 @Component 어노테이션이 생략이 돼있어서라고 하는데, 나는 JwtUtil이고, @Component 어노테이션도 달려 있었다. 구글링으로는 답이 없어 튜터님께 찾아갔다.

 

[해결방법]

답은 간단했다.

@Value("${jwt.secret.key}") // Base64 Encode 한 SecretKey
private String secretKey;

이부분에서 문제였다. 왜냐하면 @Value 어노테이션은 application.properties에 있는 값중 ${~~~}을 가져와라! 인건데

내가 이걸 까먹고 넣지 않아서 생긴 문제. secretKey가 초기화 되지 않은 상태로 Bean을 만드려니 필드값이 제대로 초기화가 안돼서 Bean이 생성이 안됐던 모양이다. 

application.properties에 secretKey값을 추가해서 하니 정상작동 됐다.