복붙노트

[SPRING] @ 값이 주입되지 않습니다.

SPRING

@ 값이 주입되지 않습니다.

나는 스프링 프로퍼티 클래스에 다음과 같이 값을 주입하려고한다.

@Configuration
@EnableWebMvc
public class ImagesContext {
   @Autowired
   @Value("${some.property.com}")
   private String property;

   @Bean
   public MyClass getMyClass() {
      return new MyClass(property);
   }
}

그러나 재산은 정확하게 주입되지 않습니다. 대신 디버깅 할 때 속성 문자열에 문자열 값 자체가 아닌 $ {some.property.com}이 들어 있음을 알 수 있습니다.

해결법

  1. ==============================

    1.@Value 주석은 AutowiredAnnotationBeanPostProcessor에 의해 처리됩니다. 이는 일반적으로 XML에 또는 구성이 있거나 bean 정의가있는 경우 등록됩니다. 아마 그 중 하나를 추가해야합니다. 아마도

    @Value 주석은 AutowiredAnnotationBeanPostProcessor에 의해 처리됩니다. 이는 일반적으로 XML에 또는 구성이 있거나 bean 정의가있는 경우 등록됩니다. 아마 그 중 하나를 추가해야합니다. 아마도

    이미 완료되지 않았다면 Config 클래스에 다음 빈 선언을 추가하십시오

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
    

    @Value 주석을 사용하려면 PropertySourcesPlaceholderConfigurer를 등록해야합니다. XML에서 를 사용할 때 자동으로 수행되지만 @Configuration을 사용할 때는 정적 @Bean으로 등록해야합니다.

  2. from https://stackoverflow.com/questions/24993766/value-is-not-injected by cc-by-sa and MIT license