码农知识堂 - 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去实现不需要创建多个配置文件,更加方便了 !

  • 相关阅读:
    mybatispagehelp嵌套分页处理
    【高并发】别闹了,这样理解Java的内存模型才正确(八种操作+同步规则)
    【Java初阶】面向对象三大特性之多态
    JDBC编程
    golang中的Mutex原理解析
    节点电价形成机制
    如何在Django中使用分布式定时任务并结合消息队列
    React【异步逻辑createAsyncThunk(一)、createAsyncThunk(二)、性能优化、createSelector】(十二)
    Hudi 在 vivo 湖仓一体的落地实践
    基于改进莱维飞行和混沌映射的粒子群优化BP神经网络分类研究(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/m0_52982868/article/details/126479534
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号