Springboot yml 注入列表(字符串、对象)

一、开发环境

  • jdk:1.8
  • springboot:1.5.11.RELEASE

二、需求

  • 通过application.yml将值动态注入到各属性中
public class Clazz {
    private String str; // 字符串
    private List<String> strings; // 字符串列表
    private List<User> users; // 对象列表,脑补User中包含name和age两个属性
}

三、步骤

  1. 编写yml文件,这里命名为cust.yml,当然可以直接用application.yml,也可以用properties,异曲同工这里不展开讨论
custom:
  str: ABCD
  strings: ABC, DEF, GHI
  users:
    - { name: zhangsan, age: 20 }
    - { name: lisi, age: 22 }
  1. 代码进行Springboot配置
@Component
@PropertySource("classpath:cust.yml") // 如果是application.yml,可以忽略
@ConfigurationProperties("custom") // 或(prefix = "custom")
public class Clazz {
    private String str; // 字符串
    private List<String> strings; // 字符串列表
    private List<User> users; // 对象列表,脑补User中包含name和age两个属性
}
  1. 引入springbootconfiguration-processor依赖
<dependency>
    <groupId> org.springframework.boot </groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
 </dependency>
  1. 以上就完成了注入的配置

四、Tips

  • 普通单元素类型,例如str,可以直接用@Value("${custom.str}")的方式注入,不用配置@ConfigurationProperties
  • 字符串列表或者基本包装类型列表,直接以英文逗号,隔开,不能写成-列表形式,至少在1.5版本是这样的
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解S...
    dwwl阅读 10,765评论 4 81
  • SpringMVC原理分析 Spring Boot学习 5、Hello World探究 1、POM文件 1、父项目...
    jack_jerry阅读 5,201评论 0 1
  • 一、SpringBoot简介 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Sprin...
    SingleXu阅读 9,750评论 1 20
  • https://github.com/cuzz1/springboot-learning 一、Spring Boo...
    cuzz_阅读 8,698评论 1 6
  • 我有一个小外祖母。 我的小外祖母,即使她已去世多年,我依旧不知道她叫什么名字。 我的小外祖母,她并不是个多话的人,...
    么么西柚阅读 1,852评论 1 0