반응형
@Value가 property값을 받아오지 못했다면 아래 4가지 사항을 검토해보기를 바란다.
1) 프로퍼티 이름의 스펠링이 틀렸을 경우
2) 오브젝트가 스프링에서 관리되도록 하지 않은 경우
클래스 위에 @Service, @Component와 같이 Bean으로 등록하지 않았다면 Spring의 DI를 활용할 수 없다.
DI를 활용하기 위해서는 호출하는 쪽에서도 스프링에서 빈으로 관리가 되어야 한다는 점은 잊지 말도록 하자.
3) static 변수로 받는 경우
@Value값을 static 변수로 직접 받을 수는 없다.
꼭 static 변수로 저장해야 한다면, @Value값을 setter 메소드의 파라미터로 받아서 static 변수에 저장하면 된다.
4) 외부에서 이 클래스를 new로 생성했을 경우
이 클래스에 대한 인스턴스를 외부에서 new로 생성하지는 않았는지 확인해보자.
@Value값을 받아오려면 호출하는 쪽도 Bean으로 관리가 되어야 한다고 앞서 언급했다. 즉 이 오브젝트가 Bean 오브젝트라면, 외부에서는 이 오브젝트를 new가 아닌 @Autowired로 받아와야 한다.
반응형
'Spring Series > Spring Framework' 카테고리의 다른 글
[Spring] Template/Callback 패턴 (0) | 2022.03.19 |
---|---|
[Spring] 테스트 코드의 작성 (0) | 2022.03.10 |
[Spring] 상속/인터페이스를 통한 확장 (0) | 2022.03.04 |
[Spring] Spring Security(7) - 자동 로그인 기능 추가 (0) | 2021.02.09 |
[Spring] Spring Security(6) - 암호화로 보안 강도 높이기 (2) | 2021.02.08 |
댓글