복붙노트

[SPRING] Spring : @Value 주석을 사용하여 인라인 문자열 목록을 삽입하는 방법 [duplicate]

SPRING

Spring : @Value 주석을 사용하여 인라인 문자열 목록을 삽입하는 방법 [duplicate]

@Value 주석을 사용하여 문자열 값 목록을 삽입하려면 어떻게해야합니까? 저는 Spring 4.1.2를 사용하고 있습니다.

난 노력 했어:

@Value(value = "top, person, organizationalPerson, user")
private List<String> userObjectClasses

그리고 인라인리스트를위한 spring el 문서를 기반으로 :

@Value(value = "{top, person, organizationalPerson, user}")
private List<String> userObjectClasses

이러한 시도는 목록의 유일한 요소로 지정된 값의 문자열 리터럴을 삽입합니다.

편집하다

이 경우 속성 파일을 읽지 않고 단순히 값을 하드 코딩 할 수 있기를 바랍니다. 이 방법은 다음보다 약간 덜 냄새가 난다.

private List<String> userObjectClasses = Arrays.asList(new String[] {"top", "person", "organizationalPerson", "user"});

과거에는 bean XML을 사용하여 bean을 연결 시켰습니다.이 경우 bean은 사용자 Object Classes 속성에 대한 공용 설정자가 있다고 가정합니다.

<property value="userObjectClass">
  <list>
    <value>top</value>
    <value>person</value>
    <value>organizationalPerson</value>
    <value>user</value>
  </list>
</property>

주석 기반 구성을 사용할 때 아날로그가 있습니까?

해결법

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

    1.list.of.strings = 첫 번째, 두 번째, 세 번째는 속성 파일에서 가져 왔습니다.

    list.of.strings = 첫 번째, 두 번째, 세 번째는 속성 파일에서 가져 왔습니다.

    다음 SpEL을 사용하여 :

     @Value("#{'${list.of.strings}'.split(',')}") 
     private List<String> list;
    

    편집하다

    그렇다면 이러한 유형의 작업에 주석을 사용해야한다고 생각하지 않습니다. 일부 필드를 초기화하기 위해 모든 작업을 수행 할 수 있습니다. @PostConstruct를 사용하면됩니다.

  2. from https://stackoverflow.com/questions/27390363/spring-how-to-inject-an-inline-list-of-strings-using-value-annotation by cc-by-sa and MIT license