进阶SpringBoot之 JSR303 数据校验和多环境配置

松散绑定:yml 写 last-name,实体类写 lastName,效果一样

JSR303 数据校验:在字段上增加一层过滤器验证,保证数据合法性

pom.xml 添加 spring-boot-starter-validation 依赖

XML 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

在实体类上添加 @Validated 进行数据校验

关于校验的注解除下方外还有许多

java 复制代码
    @NotNull(message = "不能为空")
    @Max(value = 10,message = "不超过10")
    @Email(message = "邮箱格式错误")

    //空检查
    @Null //验证对象是否为null
    @NotNull //验证对象是否不为null,无法查验长度为0的字符串
    @NotBlank //检查约束字符串是否为null,trim长度是否大于0,只对字符串,且会去掉前后空格
    @NotEmpty //检查约束元素是否为null或empty

    //Boolean检查
    @AssertTrue //验证Boolean对象是否为true
    @AssertFalse //验证Boolean对象是否为false

    //长度检查
    @Size(min = 2, max = 10) //验证对象(Array、Collection、Map、String)长度是否在给定的范围内
    @Length(min = 2, max = 10)

    //日期检查
    @Past //验证Date和Calendar(日历类)对象是否在当前时间之前
    @Future //验证Date和Calendar(日历类)对象是否在当前时间之后
    @Pattern(regexp = "") //验证String对象是否符合正则表达式的规则

多环境配置:

方法一:properties

在 resources 目录下创建 application-dev.properties、application-test.properties,设置端口

application.properties:

spring.profiles.active=dev,选择激活哪一个配置

XML 复制代码
# SpringBoot的多环境配置,可以选择激活哪一个配置文件
spring.profiles.active=dev

运行结果:Tomcat 走了 8082 端口

方法二:yaml

XML 复制代码
spring:
  profiles:
    active: test

---
server:
  port: 8081
spring:
  profiles: test

---
server:
  port: 8082
spring:
  profiles: dev

自动装配原理:

1.SpringBoot 启动会加载大量的自动配置类

2.看我们需要的功能有没有在 SpringBoot 默认写好的自动配置类当中

3.再看这个自动配置类中到底配置了那些组件(如果我们要用的组件存在其中,就不需要再手动配置)

4.给容器中自动配置类添加组件时,会从 properties 类中获取某些属性,我们只需要在配置文件中指定这些属性的值即可

xxAutoConfiguration:自动配置类,给容器中添加组件

xxProperties:封装配置文件中的相关属性

相关推荐
x***38166 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
韩立学长7 小时前
基于Springboot课堂教学辅助系统08922bq1(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
serendipity_hky9 小时前
互联网大厂Java面试故事:核心技术栈与场景化业务问题实战解析
java·spring boot·redis·elasticsearch·微服务·消息队列·内容社区
qq_328067819 小时前
springboot4 启动 Unable to find JSON tool
spring boot·json
毕设源码-钟学长9 小时前
【开题答辩全过程】以 基于Javaweb的电动汽车充电桩管理系统为例,包含答辩的问题和答案
java·spring boot
+VX:Fegn089510 小时前
计算机毕业设计|基于springboot+vue的学校课程管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
S***267510 小时前
【监控】spring actuator源码速读
java·spring boot·spring
f***241110 小时前
springboot系列--自动配置原理
java·spring boot·后端
一 乐11 小时前
水果销售|基于springboot + vue水果商城系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端