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

相关推荐
Bs_MoneyMagnet6 分钟前
基于springboot+vue的爱心众筹系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·管理系统
EatFan1 小时前
从单体到模块化:我的 Spring Boot 项目为什么拆成 framework、module、server?
java·spring boot·后端
Bs_MoneyMagnet1 小时前
基于springboot+vue的在线音乐管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
仍然.2 小时前
SpringCloud---Seata
spring boot·后端·spring cloud
凤山老林2 小时前
Spring Boot + OpenSearch 实战:搞定全文检索、向量召回与混合排序
spring boot·后端·全文检索·向量·opensearch·全文索引
QQ_21696290962 小时前
基于微服务架构的店铺管理系统的设计与实现
大数据·spring boot·后端·spring·微服务·小程序·架构
EatFan15 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
凤山老林16 小时前
Spring Boot 整合 Flowable 的企业级落地指南
数据库·spring boot·后端·flowable·工作流
代码调试师18 小时前
【毕设分享】基于SpringBoot的旅游向导分配管理系统57145
spring boot·毕业设计·源码·课程设计·毕设·大作业·程序定制
2301_322414280419 小时前
活力孕康复APP 47737- 原创(免费领源码+部署教程+开发环境)
java·vue.js·spring boot·mysql·微信小程序·idea·微信开发者工具