ymal & properties 赋值特性 JSR303数据校验

基本语法

1、空格不能省略

2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。

3、属性和值的大小写都是十分敏感的。

key:空格value

字面量直接写在后面就可以 , 字符串默认不用加上双引号或者单引号;
比如:
name: kant
server:
  port: 8081

可以存对象

student:
  name: kant
  age: 18

student: {name: kant,age: 3}

数组

pets:
  - a
  - b
  - c

pets:[ a, b, c]

可以给实体类赋值

关于springboot配置注解处理器, 导入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

编写实体类

复制代码
@AllArgsConstructor
@NoArgsConstructor
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

}

@Component
@ConfigurationProperties(prefix = "dog")
public class Dog {
private String name;
private Integer age;
}
复制代码

yaml配置文件

复制代码
person:
  name: 李白
  age: 18
  happy: true
  birth: 701/01/01
#  maps: {字: 太白,号: 青莲居士}  键不能为汉字  不然会报错
  maps: {zi: 太白,hao: 青莲居士}
  lists:
    - 望庐山瀑布
    - 将进酒
    - 早发白帝城
    - 蜀道难
  dog:
    name: 小白
    age: 3
复制代码

 

properties

properties配置文件在写中文的时候,会有乱码 , 我们需要去IDEA中设置编码格式为UTF-8; settings-->FileEncodings 中配置;

 

 配置文件user.properties

user1.name=李白
user1.age=18
user1.sex=男

实体类

复制代码
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component //注册bean
@PropertySource(value = "classpath:user.properties")
public class User {
    //直接使用@value
    @Value("${user1.name}") //从配置文件中取值
    private String name;
    @Value("#{9*2}") // #{SPEL} Spring表达式
    private int age;
    @Value("男") // 字面量
    private String sex;
}
复制代码

测试

    @Autowired
    User user;
    @Test
    void contextLoads() {
        System.out.println(user);
    }

 

 JSR303数据校验

 

 

 

 

posted @   磕伴  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示