需求:在工作中有一些配置需要自定义在yml配置中,其中就有可能有List配置,那该怎么配置呢?
yml配置代码:
tools-configs:
enabled: false
printers:
- id: 1
name: toolbox-***
startUrl: print/***/
stopUrl: print/***/
installDir: toolbox-***\
- id: 2
name: toolbox-***
url: print/***/
installDir: toolbox-***\
定义对接yml的实体类:
@Data
public class ToolsInfo {
private String id;
private String name;
private String stopUrl;
private String startUrl;
private String installDir;
}
定义注入配置类:
@Data
@Component
//注意prefix一定要小写
@ConfigurationProperties(prefix = "tools-configs")
public class ToolsConfigs {
//注意printers 一定要是yml文件的printers属性
List<ToolsInfo> printers;
}
使用:
// 注入进来
@Autowired
public ToolsConfigs printers;
// 这样就能获取到了
List<ToolsInfo> printers = this.printers.getPrinters();
注意点:
在使用此注解时要引用下面pom:@ConfigurationProperties(prefix = "tools-configs")
<dependency>
<groupId></groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>