超市设计,网站百度推广和优化,网站正在建设中 打不开怎么办,wordpress注册跳转2. SpringBoot 配置
2.1 配置文件类型
配置文件用于修改 SpringBoot 的默认配置。
2.1.1 properties 文件 **properties ** 是属性文件后缀。 文件名#xff1a;application.properties 只能保存键值对。 基础语法#xff1a;keyvalue namewhy注入配置类 Component //…2. SpringBoot 配置
2.1 配置文件类型
配置文件用于修改 SpringBoot 的默认配置。
2.1.1 properties 文件 **properties ** 是属性文件后缀。 文件名application.properties 只能保存键值对。 基础语法keyvalue namewhy注入配置类 Component // 声明为 Spring 组件
PropertySource(value classpath:config.properties)
public class Person {Value(${name})private String name;
}需要在 IDEA 的 settings -- FileEncodings 中设置编码格式为 UTF-8。
2.1.2 yaml 文件 yaml 是一个可读性高用来表达数据序列化的格式。 文件名application.yml 或 application.yaml 能保存键值对、对象和表达式。 基础语法key: 空格 value # 键值对
name: why# 对象
student:name: whyage: 20student: {name: why,age: 20}# 数组
pets: - cat- dog- pigpets: [cat,dog,pig]# 表达式
dog:name: ${siri:siri}_旺财注入配置类 导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional
/dependency映射到类 Component // 声明为 Spring 组件
ConfigurationProperties(prefix person) // 映射配置文件的值到组件
public class Person {...}2.1.3 配置注入比较
ConfigurationPropertiesValue功能批量注入配置文件中的属性指定注入配置文件中的属性松散绑定√×SpEL√√JSR303 数据校验√×复杂类型封装√×
(1) 松散绑定 yaml 文件中的 dog-name 可以为类中的 dogName 赋值 dog:dog-name: 富贵dog-age: 3Component
ConfigurationProperties(value dog)
public class Dog {private String dogName;private Integer dogAge;
}(2) JSR303数据校验
● 检查属性的数据格式。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId
/dependencyperson:email: 123456Component // 声明为 Spring 组件
Validated // 数据格式校验
ConfigurationProperties(prefix person) // 映射配置文件的值到组件
public class Person {Email(message 邮箱格式错误)private String email;
}检查结果default message [邮箱格式错误];
● 数据格式检查常用注解
Maven:jakarta.validation:jakarta.validation-api:2.0.2
注解作用类型解释NotNull任何类型属性不能为nullNotEmpty集合集合不能为null且size大于0NotBlanck字符串、字符字符类不能为null且去掉空格之后长度大于0AssertTrueBoolean、boolean布尔属性必须是trueMin数字类型原子和包装限定数字的最小值整型Max同Min限定数字的最大值整型DecimalMin同Min限定数字的最小值字符串可以是小数DecimalMax同Min限定数字的最大值字符串可以是小数Range数字类型原子和包装限定数字范围长整型Length字符串限定字符串长度Size集合限定集合大小Past时间、日期必须是一个过去的时间或日期Future时期、时间必须是一个未来的时间或日期Email字符串必须是一个邮箱格式Pattern字符串、字符正则匹配字符串
2.2 配置文件路径
2.2.1 路径优先级 优先级从高到低排序 file 为项目目录classpath 为资源目录即 resources (1) file:./config/ (2) file:./ (3) classpath:/config/ (4) classpath:/
2.2.2 多环境配置
整合线上、测试或者其他用途的环境配置。
properties 文件 application.properties spring.profiles.activetestapplication-test.properties server.port8081application-dev.properties server.port8082yaml 文件 application.yml server:port: 8080
spring:profiles: test
---
server:port: 8081
spring:profiles: test
---
server:port: 8082
spring:profiles: dev2.3 配置文件内容
配置文件中的内容都基于 xxxAutoConfiguration 绑定并装配的 xxxProperties 类。 开发者编写配置文件给 xxxProperties 类属性赋值。xxxAutoConfiguration 使用 xxxProperties 类属性修改配置默认值。 配置文件 -- xxxProperties -- xxxAutoConfiguration -- 修改配置默认值
2.4 总结 SpringBoot 启动会加载大量自动配置类 检查 SpringBoot 默认的自动配置类中是否含有所需配置组件若没有则需手动添加。 手动添加组件时SpringBoot 从 Properties 类中获取某些属性在配置文件中指定这些属性的值即可实现自动装配。 xxxAuotoConfiguration自动配置类 xxxProperties封装配置文件的相关属性 xxx.yml为属性赋值完成配置。 debug: ture 日志打印配置。