внедрить значения по умолчанию в бин Spring с аннотацией - PullRequest
3 голосов
/ 14 января 2011

Я бы хотел установить значения по умолчанию для списка в бине, используя аннотации.

Например, если это не список, вы можете сделать:

@Value("myValue")
String test;

Но в моем случае я хочу указать значения по умолчанию для списка строк.

List<String> tests;

В XML это примерно так:

<bean id="beanId" class="class...">
    <property name="tests">
        <list>
            <value>value 1</value>
            <value>value 2</value>
            <value>value 3</value>
        </list>
    </property>
</bean>

Я хотел знать, существует ли существующая аннотация или мне нужно ее создать?

Спасибо

Ответы [ 2 ]

7 голосов
/ 14 января 2011

@Value понимает язык выражений, поэтому вы можете использовать произвольные вызовы методов, хотя синтаксис может выглядеть ужасно, что-то вроде этого:

@Value("#{T(java.util.Arrays).asList('Value 1','Value 2','Value 3')}")

Справка:

4 голосов
/ 14 января 2011

Вы можете назначить значения по умолчанию напрямую, без каких-либо аннотаций:

String test = "myValue";

List<String> tests = Arrays.asList("value 1", "value 2", "value 3");

@Value необходимо, если вы хотите, чтобы Spring обрабатывал значения так же, как в файле XML, например, для оценки SpELвыражения, разрешающие заполнители и т. д. Если вам это не нужно, вы можете назначить значения по умолчанию без аннотаций.

...