2011-01-14 12 views
3

injizieren Ich möchte Standardwerte für eine Liste in einer Bean mit Anmerkungen festlegen.Standardwerte in Spring Bean mit Annotation

Zum Beispiel, wenn es keine Liste ist können Sie tun:

@Value("myValue") 
String test; 

Aber in meinem Fall möchte ich Standardwerte für eine Liste der String geben.

List<String> tests; 

In XML, dann ist es so etwas wie das:

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

Ich wollte wissen, ob es eine bestehende Anmerkung ist, oder wenn ich erstellen haben?

Danke

Antwort

7

@Value versteht Ausdruckssprache, so dass Sie beliebige Methodenaufrufe verwenden können, obwohl die Syntax hässlich kann, so etwas wie dieses:

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

Referenz:

4

Sie direkt Standardwerte zuweisen können, ohne Anmerkungen: die gleiche Art und Weise zu handhaben Werte in wie in XML-Datei, zum Beispiel

String test = "myValue"; 

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

@Value wird benötigt, wenn Sie Frühling wollen, um SpEL-Ausdrücke auszuwerten, Platzhalter aufzulösen, usw. Wenn Sie es nicht benötigen, können Sie Standardwerte ohne Anmerkungen zuweisen.

+0

danke, in der Tat habe ich vergessen zu sagen, dass ich Platzhalter auflösen müsste. – RoD