• 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
    

  • 相关阅读:
    flink 读取kafka 数据,partition分配
    Flink 报错 "Could not find a suitable table factory for 'org.apache.flink.table.factories.StreamTableSourceFactory' in the classpath"
    flume接收http请求,并将数据写到kafka
    【翻译】Flume 1.8.0 User Guide(用户指南) Processors
    【翻译】Flume 1.8.0 User Guide(用户指南) Channel
    【翻译】Flume 1.8.0 User Guide(用户指南) Sink
    【翻译】Flume 1.8.0 User Guide(用户指南) source
    【翻译】Flume 1.8.0 User Guide(用户指南)
    Apache Flink 简单安装
    Java之使用IDE
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13753652.html
Copyright © 2020-2023  润新知