Problem:
You want to load a list of values from a properties file and directly inject it into your class using the Spring @Value annotation. The values are represented as a comma-separated list.
Answer:
To load a list of values using Spring EL, annotate a field with @Value and specify the EL expression to extract the values:
@Value("#{'${my.list.of.strings}'.split(',')}") private List<String> myList;
This expression uses the split() function to separate the values in the properties file into a list.
Alternatively, you can define a bean in your Spring configuration file and inject it using @Value:
<bean name="list"> <list> <value>ABC</value> <value>CDE</value> <value>EFG</value> </list> </bean>
Then, in your class:
@Value("${list}") private List<String> myList;
Note: Ensure that your properties file is correctly loaded in your Spring application context.
Custom Code Option:
If you want to make this work without custom code, you can create a custom PropertySource that reads the list from the properties file. However, this option is not currently supported out-of-the-box.
The above is the detailed content of How to Inject a Comma-Separated List from a Properties File into a Spring Bean Using @Value?. For more information, please follow other related articles on the PHP Chinese website!