进阶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:封装配置文件中的相关属性

相关推荐
快乐就去敲代码@!13 小时前
Boot Cache Star ⭐(高性能两级缓存系统)
spring boot·redis·后端·缓存·docker·压力测试
阿杆.13 小时前
如何在 Spring Boot 中接入 Amazon ElastiCache
java·spring boot·后端
Tjohn913 小时前
前后端分离项目(Vue-SpringBoot)迁移记录
前端·vue.js·spring boot
invicinble14 小时前
springboot的日志体系
java·spring boot·后端
阿拉斯攀登14 小时前
Spring Boot 自动配置的底层实现原理
spring boot·自动配置
czlczl2002092514 小时前
拒绝 DTO 爆炸:详解 Spring Boot 参数校验中的“分组校验” (Validation Groups) 技巧
java·spring boot·后端
爱宇阳14 小时前
宝塔面板 + Nginx + Spring Boot 零停机滚动发布完整教程
运维·spring boot·nginx
小鸡脚来咯14 小时前
springboot项目包结构
java·spring boot·后端
爱学习的小可爱卢14 小时前
JavaEE进阶——SpringBoot日志从入门到精通
java·spring boot·后端
古城小栈15 小时前
性能测试:JMeter 压测 Spring Boot 微服务
spring boot·jmeter·微服务