본문 바로가기
  • 실행력이 모든걸 결정한다
Spring Series/Spring Framework

[Spring] @Value가 null을 가져오는 문제

by 김코더 김주역 2022. 3. 6.
반응형

 

@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로 받아와야 한다. 

 

 

반응형

댓글