• SpringBoot-03-JSR303数据校验和多环境切换


    3.3 JSR303数据校验

    先看如何使用

    ​ Springboot中可以用@Validated来校验数据,如果数据异常则统一抛出异常,方便异常中心统一处理。

    ​ 这里我们写个注解让name只支持Email格式:

    @Component
    @ConfigurationProperties(prefix = "person")
    @Validated //数据校验
    public class Person {
        @Email()
        private String name;
    }
    

    导入依赖:

    <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    
    

    运行结果:default message[不是一个合法的电子邮件地址]

    常见参数

    @NotNull(message="名字不能为空")
    private String userName;
    @Max(value=120,message="年龄最大不能查过120")
    private int age;
    @Email(message="邮箱格式错误")
    private String email;
    
    空检查
    @Null       验证对象是否为null
    @NotNull    验证对象是否不为null, 无法查检长度为0的字符串
    @NotBlank   检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
    @NotEmpty   检查约束元素是否为NULL或者是EMPTY.
        
    Booelan检查
    @AssertTrue     验证 Boolean 对象是否为 true  
    @AssertFalse    验证 Boolean 对象是否为 false  
        
    长度检查
    @Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内  
    @Length(min=, max=) string is between min and max included.
    
    日期检查
    @Past       验证 Date 和 Calendar 对象是否在当前时间之前  
    @Future     验证 Date 和 Calendar 对象是否在当前时间之后  
    @Pattern    验证 String 对象是否符合正则表达式的规则
    
    .......等等
    除此以外,我们还可以自定义一些数据校验规则
    

    3.4 多环境切换

    ​ profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境。

    配置文件

    我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/tml,用来指定多个环境版本;

    例如:

    application-test.properties:测试环境配置

    application-dev.properties:开发环境配置

    但是Springboot并不会直接启动这些配置文件,它默认使用application.properties主配置文件;

    因此,我们需要通过一个配置来选择需要激活的环境:

    spring.profiles.active=dev
    

    yaml的多文档块

    ​ 和properties配置文件一样,但是使用yml就不需要创建多个配置文件。

    server:
      port: 8081
    #选择要激活那个环境块
    spring:
      profiles:
        active: prod
    
    ---
    server:
      port: 8083
    spring:
      profiles: dev #配置环境的名称
    
    
    ---
    
    server:
      port: 8084
    spring:
      profiles: prod  #配置环境的名称
    

    注意:

    ​ 如果yml和properties同时配置了端口,默认会使用properties配置文件

    配置文件加载位置

    ​ 外部加载配置文件的方式很多,我们选择最常用的即可,在开发的资源文件中配置!

    官方外部配置文件说明参考文档:

    在这里插入图片描述

    优先级向上以此增加!高优先级覆盖低优先级的配置,并且SpringBoot会全部加载,互补配置

    拓展,运维小技巧

    指定位置加载配置文件:

    spring.config.location(改变默认的配置文件位置)

    项目打包好后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置(相同配置,外部指定的配置文件优先级最高)

    java -jar spring-boot-config.jar --spring.config.location=F:/application.properties
    

  • 相关阅读:
    python2 与python3 区别的总结 持续更新中......
    基础数据类型初识(三)字典
    基础数据类型初识(二)列表,元组
    基本数据类型初识(一)数字,字符串
    python基础知识(理论)
    进程池 和 管道 , 进程之间的 信息共享
    并发编程
    进程 和 多进程
    计算机系统的发展史
    网络编程 黏包
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13753652.html
Copyright © 2020-2023  润新知