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数据校验
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术