Home > Java > javaTutorial > How to Inject a Comma-Separated List from a Properties File into a Spring Bean Using @Value?

How to Inject a Comma-Separated List from a Properties File into a Spring Bean Using @Value?

DDD
Release: 2024-12-04 12:53:11
Original
648 people have browsed it

How to Inject a Comma-Separated List from a Properties File into a Spring Bean Using @Value?

Reading a List from Properties File Using Spring Annotation @Value

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:

  1. Using Spring Expression Language (EL)

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;
Copy after login

This expression uses the split() function to separate the values in the properties file into a list.

  1. Using Spring Configuration Bean

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>
Copy after login

Then, in your class:

@Value("${list}")
private List<String> myList;
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template