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

相关推荐
码兄科技12 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
豆瓣鸡19 小时前
Guava RateLimiter 限流实战:从令牌桶原理到 Nacos 动态配置
spring boot·微服务·nacos·guava
笑小枫20 小时前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
dkbnull1 天前
Spring Boot请求处理组件对比详解
java·spring boot
不能只会打代码1 天前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
吴声子夜歌1 天前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
snow@li1 天前
Spring Boot:项目服务器完整部署教程(零基础可直接实操)
服务器·spring boot·后端
万亿少女的梦1681 天前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
鱟鲥鳚1 天前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
腾渊信息科技公司2 天前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求