码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JSR303数据校验及多环境切换


    目录

    一、JSR简介

    1.JSR-303 

    2.Bean Validation 中内置的 constraint 

    3. Hibernate Validator 附加的 constraint

    二、@validated

    ⭐@Email注解报错

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

    四、多环境配置

    ⚪测试properties配置文件的优先级及多模块化

     ⚪测试yaml配置文件的优先级及多模块化


    一、JSR简介

    JSR-303 - 简书 (jianshu.com)

    JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

    1.JSR-303 

    JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

    2.Bean Validation 中内置的 constraint 

    3. Hibernate Validator 附加的 constraint

    二、@validated

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

    1. @Component
    2. @ConfigurationProperties(prefix = "person")
    3. @Validated //数据校验
    4. public class Person{
    5. @Email() //name只能支持Email格式
    6. private String name;

    此时,若name不是Email格式

    运行结果: 

    也可以自定义报错内容

    ⭐@Email注解报错

    需要添加validation启动器

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-validationartifactId>
    4. dependency>

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

    四、多环境配置

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

    springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件:

    优先级1:项目路径下的config文件夹配置文件优先级2:项目路径下配置文件优先级3:资源路径下的config文件夹配置文件优先级4:资源路径下配置文件

    优先级由高到底,高优先级的配置会覆盖低优先级的配置; 

    SpringBoot会从这四个位置全部加载主配置文件;互补配置;

    ⚪测试properties配置文件的优先级及多模块化

    application-test.properties 代表测试环境配置

    application-dev.properties 代表开发环境配置

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

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

    运行结果 

     ⚪测试yaml配置文件的优先级及多模块化

    和properties配置文件中一样,但是使用yml去实现不需要创建多个配置文件,更加方便了 !

  • 相关阅读:
    Arm 架构 Ubuntu 使用 Docker 安装 Gitlab 并使用
    003.Vim编辑器
    健身耳机哪些品牌好?健身运动耳机推荐
    书签收集管理软件悬浮阅读和知识库与浏览器书签之间的数据迁移
    IDEA 导入项目中文注释乱码如何解决
    企业知识库管理系统怎么做?
    虚幻引擎VS工程代码出现编译 错误 LNK2019 __declspec(dllimport) void __cdecl XXXX(bool)
    git 相关命令
    Git的下载与安装
    Apache Flume
  • 原文地址:https://blog.csdn.net/m0_52982868/article/details/126479534
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号