복붙노트

[SPRING] Spring : 주석 기반 구성으로 원시 값 (속성)의 생성자 주입

SPRING

Spring : 주석 기반 구성으로 원시 값 (속성)의 생성자 주입

Spring 3에서 Annotation 기반 구성을 사용하여 클래스를 구성하려고합니다. 생성자 인수로 원시 값을 사용합니다.

@Component
class MyBean {
  MyBean(String arg1, String arg2) {
    // ...
  }
}

그리고 다음과 같은 애플리케이션 컨텍스트 :

<beans [...]>
  <context:component-scan base-package="com.example" />
  <context:property-override location="/WEB-INF/example.properties" />
</beans>

속성 파일에서 생성자 인수를 가져와야한다고 지정하는 방법을 찾으려고합니다. 분명히 이것은 정규 bean (예 : MyClass (Bean bean1, OtherBean bean2))을 가져 오는 생성자와 작동하지만 속성 만 있습니까?

또한 @Value ( "# {prop.Prop1}") arg1과 같이 값에 대한 Spring 표현식의 @Value 주석과 EL 표현식으로 생성자 인수에 주석을 달았습니다.하지만 그 중 하나는 작동하지 않습니다.

해결법

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

    1.다음 코드는 와 잘 작동합니다.

    다음 코드는 와 잘 작동합니다.

    @Component 
    public class MyBean { 
        @Autowired
        public MyBean(@Value("${prop1}") String arg1, @Value("${prop2}") String arg2) { 
            // ... 
        } 
    } 
    

    하지만 는 매우 구체적인 것이므로 여기서는 적합하지 않습니다.

  2. from https://stackoverflow.com/questions/2306078/spring-constructor-injection-of-primitive-values-properties-with-annotation-b by cc-by-sa and MIT license