springboot 配置文件 注入 list 包含map
时间: 2023-05-08 11:58:48 浏览: 478
在Spring Boot的配置文件中,可以使用@Value注解来实现注入List中的Map。首先,需要在application.properties或application.yml中声明一个属性,该属性代表一个List,每个元素都包含了一个Map。例如:
```yaml
myList:
- name: John
age: 18
- name: Mary
age: 20
```
在代码中,可以使用@Value注解将该属性注入到一个List中,类型为List<Map<String,String>>。例如:
```java
@Component
public class MyComponent {
@Value("#{${myList}}")
private List<Map<String,String>> myList;
//...
}
```
在这个例子中,@Value注解使用了Spring表达式Language(SpEL)的语法,它告诉Spring将myList属性的值作为Map类型传递给List构造函数。然后,我们就可以在代码中使用myList,例如:
```java
@Component
public class MyComponent {
@Value("#{${myList}}")
private List<Map<String,String>> myList;
public void printList() {
for (Map<String,String> map : myList) {
System.out.println(map.get("name") + ": " + map.get("age"));
}
}
}
```
这个例子展示了如何在Spring Boot中使用配置文件来注入List包含Map的变量。需要注意的是,如果List中的元素是复杂类型而不是Map,可以使用@ConfigurationProperties注解代替@Value注解,这样可以更方便地注入属性。
阅读全文