복붙노트

[SPRING] Spring 애플리케이션 컨텍스트 파일에리스트 정의하기

SPRING

Spring 애플리케이션 컨텍스트 파일에리스트 정의하기

요소를 사용하지 않고 Spring application-context.xml 파일에 List를 만들 수 있습니까?

나는 그의 생성자가 Collection 객체를 취하는 bean을 가지고 있으며 "value"속성을 통해 전체 목록을 전달하려고합니다. 그 이유는 .properties 파일에서이 값을 가져 오며 .properties 파일에서 목록을 정의 할 수 없기 때문입니다.

나는 이런 식으로하고 싶다 ... 가능한가?

MyClass.java:

public class MyClass{
  public MyClass(Collection<String> collection){ /* ... */ }
}

application-context.xml :

<bean name="myBean" class="com.company.MyClass">
  <constructor-arg value="${the.value}" />
</bean>

.properties 파일 :

the.value=item1,item2,item3

감사.

해결법

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

    1.

    <bean name="myBean" class="com.company.MyClass">
      <constructor-arg>
        <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToSet">
            <constructor-arg type="java.lang.String" value="${the.value}"/>
        </bean>
      </constructor-arg>
    </bean>
    
  2. ==============================

    2.문제의 가능한 해결책은 단일 문자열을 생성자에 전달한 다음 String.split ()을 사용하여 생성자 내부에서 목록을 구문 분석하는 것입니다.

    문제의 가능한 해결책은 단일 문자열을 생성자에 전달한 다음 String.split ()을 사용하여 생성자 내부에서 목록을 구문 분석하는 것입니다.

  3. ==============================

    3.그렇게 믿을 수는 없지만 문자열로 목록을 작성한 생성자를 사용할 수 있습니다.

    그렇게 믿을 수는 없지만 문자열로 목록을 작성한 생성자를 사용할 수 있습니다.

    (사실, 내가 옳다는 것을 완전히 확신하지는 못한다. 아마도 논쟁의 여지가 있는지에 관계없이, 커스텀 플레이스 홀더 설정자로 중요한 게임을 할 수있을 것이다 :)

  4. ==============================

    4.이 작동합니다. SPEL을 사용할 수 있습니다.

    이 작동합니다. SPEL을 사용할 수 있습니다.

    빈 설정에서,

    <property name="collection" value="#{{'item1','item2','item3'}}"/>
    
  5. from https://stackoverflow.com/questions/7652475/defining-a-list-in-a-spring-application-context-file by cc-by-sa and MIT license