Prendi in considerazione l'utilizzo di Commons Configuration. Ha una funzione integrata per spezzare una voce nel file delle proprietà in array / elenco. La combinazione con SpEL e @Value dovrebbe dare quello che vuoi
Come richiesto, ecco quello che ti serve (non ho davvero provato il codice, potrebbe avere degli errori di battitura, per favore abbi pazienza):
Nella configurazione di Apache Commons è presente PropertiesConfiguration. Supporta la funzione di conversione di stringhe delimitate in array / elenco.
Ad esempio, se si dispone di un file delle proprietà
#Foo.properties
foo=bar1, bar2, bar3
Con il codice seguente:
PropertiesConfiguration config = new PropertiesConfiguration("Foo.properties");
String[] values = config.getStringArray("foo");
ti darà una serie di stringhe di ["bar1", "bar2", "bar3"]
Per usarlo con Spring, includilo nel tuo xml di contesto dell'app:
<bean id="fooConfig" class="org.apache.commons.configuration.PropertiesConfiguration">
<constructor-arg type="java.lang.String" value="classpath:/Foo.properties"/>
</bean>
e hai questo nel tuo fagiolo primaverile:
public class SomeBean {
@Value("fooConfig.getStringArray('foo')")
private String[] fooArray;
}
Credo che dovrebbe funzionare: P
org.springframework.expression.spel.SpelEvaluationExceptionun'eccezione e nonjavax.el.ELException. Il tuo oggetto è stato creato da Spring?