背景
业务需求是要读取yaml文件配置,注入到List<Map<String, String>>中,查了一下官方文档
To bind to properties like that by using Spring Boot’s Binder utilities (which is what @ConfigurationProperties does), you need to have a property in the target bean of type java.util.List (or Set) and you either need to provide a setter or initialize it with a mutable value. For example, the following example binds to the properties shown previously:
机翻如下
要使用Spring Boot的Binder实用程序绑定属性(@ConfigurationProperties确实如此),您需要在类型为java.util.List(或Set)的目标bean中具有一个属性,并且需要提供setter或使用可变值对其进行初始化。例如,以下示例绑定到前面显示的属性:
官方代码
my:
servers:
- dev.example.com
- another.example.com
@ConfigurationProperties(prefix="my")
public class Config {
private List<String> servers = new ArrayList<String>();
public List<String> getServers() {
return this.servers;
}
}
分析
打断点测试了一下,发现list注入步骤大致如下:
- 调用get方法获取list
- list.add
核心步骤
- 类名上加
@ConfigurationProperties - list得初始化
- list有get方法
拓展 注入list<Map<String,String>>
yaml
robot:
- name: robot1
token: token1
- name: robot2
token: token2
private List<Map<String, String>> robot = new ArrayList<>();
public List<Map<String, String>> getRobot() {
return robot;
}
本文介绍了如何在Spring Boot中使用@ConfigurationProperties注解从yaml配置文件中注入List<Map<String, String>>。通过设置setter或初始化列表,结合官方文档和测试,解析了注入过程的核心步骤,包括调用get方法、添加元素等。"
121473397,8403556,YoloX在Windows上的TensorRT实时摄像头加速实践,"['深度学习', '计算机视觉', 'TensorRT', 'C++', '物体检测']
1699

被折叠的 条评论
为什么被折叠?



