4.1 yaml配置注入
- 给实体类赋值
- 方式一:使用@VAlue()+@Component
-
@Data @AllArgsConstructor @NoArgsConstructor @Component public class Dog implements Serializable { @Value("二哈") private String name; @Value("99") private Integer age; }
-
- 方式二:使用 *.properties配置 + @PropertiesSource(value = "classpath:nbg.properties") + @Value("${name}")
- 例如nbg.properties → name = 张无忌
-
@Component
@PropertySource(value = "classpath:nbg.properties")
public class Person implements Serializable {
/**
* 使用@Vale("${name}") + PropertySource时,需要每个都添加注解
*/
@Value("${name}")
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String, Object> maps;
private List<Object> lists;
private Dog dog;}
- 方式二:使用applicatio.ymal配置,@Component + @ConfigurationProperties(prefix = "person")
- yaml书写格式
- 注意空格
- 有严格的缩进规则
- 属性的值和大小敏感
- 例:同一个层级
- cat:
- person:
- 例:两个层级
- cat:
- name:空格nbg
- age:空格19
- 例:大小写
- CAT:
- name:空格NBG
- 例:同一个层级
- 字符串默认不用加双引号和单引号
- 双引号:不会转义特殊字符串的内容,会表达特殊字符串的本身意义
- name: "nbg \n mmp" 输出 :nbg 换行 mmp
- 单引号:会转义特殊字符串的内容,输出字符串
- name: ‘nbg \n cnm’ 输出 :nbg \n cnm
- 双引号:不会转义特殊字符串的内容,会表达特殊字符串的本身意义
- 对象:
- cat:
- name: nbg
- age: 999
- map:
- 方式一:maps: {K1: v1,K2: v2}
- 方式二:
- maps:
- K1: v1
- K2: v2
- list set
- 方式一:
- habby:
- - code
- - game
- 方式二:
- habby: {code,game}
- yaml书写格式
- 方式一:使用@VAlue()+@Component