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

相关推荐
小赵面校招7 分钟前
Spring Boot整合MyBatis全攻略:原理剖析与最佳实践
java·spring boot·mybatis
曼岛_11 分钟前
[Java实战]Spring Boot 3 整合 Ehcache 3(十九)
java·spring boot·spring
意倾城12 分钟前
Spring Boot 配置文件敏感信息加密:Jasypt 实战
java·spring boot·后端
曼岛_12 分钟前
[Java实战]Spring Boot 3 整合 Apache Shiro(二十一)
java·spring boot·apache
火皇40512 分钟前
Spring Boot 使用 OSHI 实现系统运行状态监控接口
java·spring boot·后端
小赵面校招14 分钟前
SpringBoot整合MyBatis-Plus:零XML实现高效CRUD
xml·spring boot·mybatis
不再幻想,脚踏实地16 分钟前
Spring Boot配置文件
java·数据库·spring boot
pedestrian_h23 分钟前
Spring AI 开发本地deepseek对话快速上手笔记
java·spring boot·笔记·llm·ollama·deepseek
SuperherRo25 分钟前
Web开发-JavaEE应用&SpringBoot栈&Actuator&Swagger&HeapDump&提取自动化
spring boot·java-ee·actuator
薯条不要番茄酱44 分钟前
【SpringBoot】从零开始全面解析Spring MVC (一)
java·spring boot·后端