springboot笔记 day5
yam注入配置文件
yaml可以对实体类注入参数。
eg:在配置文件中配置
在实体类中
@Component //注入到bean容器中
@ConfigurationProperties(prefix = "eva")
通过这两行注解将其注入到bean容器中,即可。新建测试类测试
可以看到,注入成功。
- CP只需写一次即可,value则需要每个字段都添加
- 松散绑定,例如yml中写last-name和lastName是一样的,- 后面跟着的字母默认大写,这就是松散绑定
- JSR303校验,这个就是在字段增加一层过滤器验证,保证数据的合法性
- 复杂封装类:yml中可以封装对象,value就不可以
+++
JSR303校验
@Validata
数据校验,用来规范输入内容
导入后在需要验证的内容上@,即可验证,可以换输出内容@Email(message="邮箱格式错误")
如果正确,则输出
验证完成。
常用参数
@NotNull(message="名字不能为空")
private String userName;
@Max(value=120,message="年龄最大不能查过120")
private int age;
@Email(message="邮箱格式错误")
private String email;
空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.
Booelan检查
@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) string is between min and max included.
日期检查
@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符合正则表达式的规则
.......等等
除此以外,我们还可以自定义一些数据校验规则
多环境切换
profile
是spring对不同环境提供不同配置功能的支持,可以通过激活不同的版本,实现快速切换环境。
多配置文件
在主配置文件编写时,文件名可以是application-{profile}.properties/yml,用来指定多个配置环境
如:
application-test.properties 代表测试环境配置
application-dev.properties 代表开发环境配置
但是SpringBoot不会直接启动配置文件,它默认使用application.properties主配置。
我们需要一个配置来选择要激活的环境:
#比如在配置文件中指定使用dev环境,我们可以通过设置不同的端口号进行测试;
#我们启动SpringBoot,就可以看到已经切换到dev下的配置了;
spring.profiles.active=dev
yaml
和properties的配置文件一样,但是使用yml文件实现时不需要创建多个配置文件,更加方便
server:
port: 8081
#上为默认,还可以选择要激活那个环境块
spring:
profiles:
active: prod
---
server:
port: 8083
spring:
profiles: dev #配置环境的名称
---
server:
port: 8084
spring:
profiles: prod #配置环境的名称
注意:如果yml和properties同时都配置了端口,并且没有激活其他环境 , 默认会使用properties配置文件的
配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件:
优先级1:项目路径下的config文件夹配置文件
优先级2:项目路径下配置文件
优先级3:资源路径下的config文件夹配置文件
优先级4:资源路径下配置文件
- 优先级从高到低,高优先级会覆盖低优先级的配置
- SpringBoot会从这四个位置加载全部配置文件,互补配置。
优先级1:项目路径下的config文件夹配置文件
优先级2:项目路径下配置文件
优先级3:资源路径下的config文件夹配置文件
优先级4:资源路径下配置文件
- 优先级从高到低,高优先级会覆盖低优先级的配置
- SpringBoot会从这四个位置加载全部配置文件,互补配置。