0

나는 상황을 파악하고 있으며 왜 그런지 알아 내려고합니다. 시나리오는 웹 서비스에 의해 노출 된 작업을 구현하는 클래스 A가 있습니다. 작업 요청마다 A의 새 인스턴스가 만들어집니다. 전체 내용은 내부적으로 스프링에 의해 관리되며 클래스 A가 웹 서비스에 의해 인스턴스화 된 방법을 정확히 모릅니다. @Value 자리 표시자는 특정 스프링 콩에서 값을 해석하지 않습니다.

는 지금은 값이 난 ("$는 {someValue와는}") 문자열 someVariable

someValue와는 시스템 속성을 정의

@Value를 통해 런타임에 주입 할 클래스 변수가 있습니다. 그러나 생성 된 각 빈에는 someVariable이 NULL로 있습니다.

동일한 패키지에서 @Configuration으로 주석을 달아 놓은 다른 클래스에서 같은 것을 시도해 보았습니다. 변수를 잘 해석하고 있습니다. @Value를 통해 주입 할 수있는 기능이 콩은 콩 @ @Component, @ 구성 - 같이 작성 방법, XML의 definiti

답변

0

별로에 의존하는 경우

그래서, 필자는 생각. 사실 컴포넌트 검사 빈과 xml 정의 빈 모두에서 @Value로 값을 주입 할 수 있습니다. 그러나 이것에주의를 기울이십시오, 그것은 당신이 Placeholder을 넣은 xml 파일에 달려 있습니다, 그것은 컨테이너 당 유효합니다. 예를 들어, applicationContext에 넣으면 xxx-servlet.xml의 빈 작성은 @Value로 값을 주입 할 수 없습니다.

+0

죄송합니다. 답변의 두 번째 부분에서 귀하의 의견을 듣지는 못합니다. "이것은 placeholder를 넣은 xml 파일에 따라 다릅니다. 예를 들어 applicationContext에 넣으면 xxx-servlet.xml의 bean 작성에서 값을 @Value로 삽입 할 수 없습니다" – broun

+0

OK, 여기에 그 값이 있습니다. 예를 들어 속성 ​​파일에 값을 넣었고 사용하고 싶다면 xml 구성 파일에 자리 표시자를 설정해야합니다. 그러면 설정 한 xml 파일에 따라 @Value를 사용하여 값을 주입 할 수 있습니다. – OQJF

+0

나는 propertyholder 구성자 픽업 속성 rt를 이해할 수 없다. 왜 각 속성을 구체적으로 "설정"해야합니까? 나는 우리가 자리 표시자를 사용하고자하는 모든 값에 대해 "config"를해야한다는 것을 의미 할 것입니다. – broun

관련 문제