[SPRING] Spring @Value ( "$ {}")는 종종 null입니다.
SPRINGSpring @Value ( "$ {}")는 종종 null입니다.
Spring Boot 응용 프로그램을 사용하고 있습니다. @Component 클래스에서는 @Value 필드가로드되지만 다른 클래스에서는 항상 null입니다.
내 @ Bean / @ Component가 생성 된 후에 @Value (s)가로드 된 것 같습니다.
내 @Bean의 속성 파일에서 일부 값을로드해야합니다.
어떤 제안있어?
해결법
-
==============================
1.속성 (및 모든 Bean 의존성)은 Bean이 생성 된 후 (생성자의 실행) 주입됩니다.
속성 (및 모든 Bean 의존성)은 Bean이 생성 된 후 (생성자의 실행) 주입됩니다.
거기에 필요할 경우 생성자 삽입을 사용할 수 있습니다.
@Component public class SomeBean { private String prop; @Autowired public SomeBean(@Value("${some.prop}") String prop) { this.prop = prop; //use it here } }
또 다른 옵션은 @PostConstruct로 주석 된 메소드에서 생성자 로직을 이동하는 것입니다.이 메소드는 Bean이 작성되고 모든 종속성과 특성 값이 해석 된 후에 실행됩니다.
-
==============================
2.시도해 봤니?
시도해 봤니?
@Component @PropertySource("file:/your/file/path") public class MyBean { private @Value("${property}") String property; ... }
-
==============================
3.그것을 정적 변수로 해석 할 때 발생할 수 있습니다. 나는 이것을 언젠가 되돌아보고 그것을 단지 정전기 제거만으로 해결했다. 사람들이 항상 말하듯이, 정적을 사용하면서주의를 기울이십시오.
그것을 정적 변수로 해석 할 때 발생할 수 있습니다. 나는 이것을 언젠가 되돌아보고 그것을 단지 정전기 제거만으로 해결했다. 사람들이 항상 말하듯이, 정적을 사용하면서주의를 기울이십시오.
-
==============================
4.또 다른 가능한 이유는 '@Value'라인이 이러한 속성 / 값이 필요한 라인 아래에 있다는 것입니다.
또 다른 가능한 이유는 '@Value'라인이 이러한 속성 / 값이 필요한 라인 아래에 있다는 것입니다.
이 문제를 디버깅하는 데 많은 시간을 할애하여 라인의 순서가 중요하다는 것을 알았습니다!
from https://stackoverflow.com/questions/28636060/spring-value-often-null by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] WSO2 ESB 4.6.0의 Spring Mediator에 대한 실제 예제 (0) | 2019.05.01 |
---|---|
[SPRING] NoSuchMethodError 오류가 세션 팩토리를 생성합니다. (0) | 2019.05.01 |
[SPRING] Spring의 요청 매개 변수에 특수 문자를 보내는 방법 (0) | 2019.05.01 |
[SPRING] 연결 풀링을 위해 Hibernate, Spring 및 Apache dbcp를 구성하는 방법은 무엇입니까? (0) | 2019.05.01 |
[SPRING] Spring WebApp에서 Elasticsearch 클라이언트를 사용할 때의 링크 오류 (0) | 2019.05.01 |