学习springBoot(七,进阶篇)

立创开源:基于STM32F407的大疆M30T无人机PSDK机载开发板硬件设计与飞行控制实现 本文详细介绍了基于STM32F407微控制器为大疆M30T无人机设计PSDK机载开发板的完整流程。从关键的E-Port接口电路设计、电源保护,到STM32最小系统搭建,再到通过PSDK实现与无人机的通信及基础飞行控制,提供了从硬件到软件的全栈实战指南,助力开发者快速入门无人机负载开发。 阅读详情

前言:主要学习web的内容,这次主要学习表单验证

一、首先将我们之前写好的代码整理一下,如下图所示:

这样按类分好比较方便我们后续代码的编写。

这里我们做一个限制,未满18周岁的女生禁止进入我们的数据库!

首先找到GirlController中的添加女生的接口代码的地方:

  /**
     * 新增一个女生  POST方式
     */
    @PostMapping(value = "/girls")
    public Girl girlAdd(Girl girl){
        girl.setCupSize(girl.getCupSize());
        girl.setAge(girl.getAge());
        return girlRepository.save(girl);
    }

这里我们不再是分别传参,而是定义一个Girl实体对象,然后调用她的属性参数来传参。

我们的目的是禁止年龄小于18岁的女生进入数据库,所以我们在实体Girl中添加一个注解限制如下:

  @Min(value = 18,message = "未成年禁止入内!")
    private Integer age;

意思是最小年龄限制是18岁,如果不符合会报未成年禁止入内的错!

然后在GirlController里面添加女生的接口部分这样改正:

 /**
     * 新增一个女生  POST方式
     */
    @PostMapping(value = "/girls")
    public Girl girlAdd(@Valid Girl girl, BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
            return null;
        }
        girl.setCupSize(girl.getCupSize());
        girl.setAge(girl.getAge());
        return girlRepository.save(girl);
    }

可以看到,我们在Girl实体前面加了一个@Valid验证,并且返回一个BindingResult对象,如果对象有错误,则说明不符合添加条件,return一下停止程序进行并且打印错误。下面我们运行一下程序进行测试!!!

这里我们添加一个13岁的女生,发现body部分并没有反应,然后我们进如程序控制台查看一下:

说明我们的代码没有问题,已经拦截了小于18岁的女生!!!

也说明我们的表单验证功能已经成功!

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署 OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力; 阅读详情

相关推荐

R语言灰色关联分析法

输入数据并用DT包的datatable函数展示数据 ABDDEF分别对应第1到第6个供应商产品质量、技术水平、供应能力、经济效益、交货情况、市场影响度指标属于效益型指 产品价格、地理位置、售后服务指标属于成本型指标。现分别对上述指标进行规范化: 对于效益型指标(正项指标)标准化公式为: x∗=x−min(x)max(x)−min(x) x^{\ast}=\frac{x-min\left( x \right)}{max\left( x \right) -min\left( x \right)} x∗=max

qq_54423921的博客 7996

python练习(1)

一、if语句—未满十八岁禁止入内 二、判断一个数是否能同时被3和7整除 三、判断你一个数能同时被3或者7整除 但不能同时被3和7整除 四、输入年份 判断是否为闰年 五、定义两个变量 保存一个人的身高体重 并判断这个人的身材是否正常,公式:体重(kg)/身高(m)的平方,在18.5-24.9之间的属于正常现象 六、写一个程序 判断成绩的等级 七、编写检票过程 八、猜拳游戏(石头剪刀布) 九、随机猜数字游戏 十、打印十遍helloword

m0_69034993的博客 3万+

【SABRE 3D, SABRE 3DxT,LAM设备】2025年9月12日-生产期间维护用的双重隔离

生产期间维护用的双重隔离。该程序用于准备将一个或多个双工位设置为维护状态,同时SABRE 3D/3DxT/3D Scimitar保持生产运行。其目的是在不中断生产的情况下将双工位与运行中的设备隔离。

weixin_46735260的博客 574

iOS RAC 的使用总结 (转载)

ReactiveCocoa(简称RAC),是GitHub上开源的一个应用于iOS和OS X开发的一个新框架.RAC具有函数式编程和响应者编程的特性. ReactiveCocoa解决的问题: 1.传统iOS开发过程中,状态以及状态之间依赖过多的问题 2.传统MVC架构的问题:Controller比较复杂,可测试性差 3.提供统一的消息传递机制 1.键值观察--监听TF的值发生变化 - (vo...

weixin_33851429的博客 2271

WINDOWS下SIP拨号的实现

在WIN10上拨打SIP电话  由于我的交换原理实验有一个是关于SIP的抓包的。而之前从未接触过SIP,所以在如何完成一次SIP拨号上遇到了不少问题,查了好多资料都没有完整的或者写的很清楚的,这里就对那些资料做一个总结,给出一个比较完善的解决方案,一来是记录此次实验的收获,而来也可能为其他有同样困惑的人解惑。  废话不多说直接开始。首先是下载一个可以拨打SIP电话的客户终端,这里我选择的是MicroSIP, 下载红圈内的文件,下载好之后直接一路安装即可,没有什么特别注意的地方。  安装好客户端之后,就需要注

weixin_43918519的博客 3807

单片机如何获得5V电源

在单片机实际设计中,有时会需要在电路中用到5V电压源,那么这个常见的实验需求有哪些办法解决呢,我综合网上的资料,概括一下: 1)USB    这种方法在我们直接将单片机板与电脑连接调试的时候,算是简单又方便的办法了,但如果我所要得到的成品不直接连接外部的器件,这就得舍弃。     常用的,USB/5V插头线,这是一种专门的电源线,一端是USB通用接口,可以直插USB端口,另一端是内正外负电压

Echo_Ana的博客 3万+

python 分支流程if语句 200309

学习目标 单路分支 二路分支 多路分支 分支流程即判断流程 生活中的分支 生活中处处有判断 场景:未满18岁禁止入内 上网需要年满18 温度检测 进出小区的温度体检 如果体温高于37.3度,送方仓医院隔离治疗 单路分支 语法 if 条件: 成立时执行的内容 注意缩进 通过缩进表达层次关系 明确层次关系与代码块范围内与范围外 单路分支演练:例子 将前面的两个情景用单路分支...

鲸鱼编程-python全栈 1269

双摄像头的实时视频拼接及目标跟踪(一)

本章主要讲图像拼接算法的研究 先膜拜一下知乎大佬全面的叙述:https://www.zhihu.com/question/34535199/answer/135169187 本文图像拼接是基于opencv的图像拼接,流程分为以下几步 ...

Y.W.jian的博客 3万+

python分支判断语句_python 分支语句 等值判断 逻辑运算符

# 分支语句age = 233if age < 18:print(‘您还未满18岁,禁止入内‘)elif age > 18 and age < 60:print("欢迎光临,年龄在18-60之间")else:print("欢迎光临,年龄大于60岁")weight = input(‘体重(kg): ‘)height = input("身高(cm):")#体重/ 身高的平方 pow...

weixin_42370320的博客 373

miRNA测序数据生信分析——第一讲,总结概述

这里的miRNA测序指转录水平的测序。这里每一个数据库都可以在线访问,但是如果要本地使用,都需要进行数据库文件下载,整理。

weixin_44616693的博客 4951

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1422

python

python学习笔记

weixin_43936202的博客 1429

用 SAP-ABAP-1 把 ABAP 代码读懂:从 Generative AI Hub Orchestration 到 Joule 落地的实战指南

SAP-ABAP-1 是 SAP 推出的 ABAP 专用基础模型,专注于代码解释与理解。它能显著降低企业遗留系统的维护成本,帮助开发人员快速掌握复杂业务逻辑。该模型通过 SAP Generative AI hub 托管,支持 128,000 tokens 的上下文长度,适合分析大型 ABAP 类和 CDS 视图。典型应用场景包括代码解释、迁移辅助和云合规检查。调用需通过 Orchestration service 进行,确保企业级安全治理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

SpringBoot学习之旅(七)---JPA进阶篇之自定义查询、修改、分页

文章目录

一行Java的博客 1703

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?

学习框架相当于从“小作坊”到“工厂”的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是高效。 框架更加易用、简单且高效。

xinhang10的博客 2485

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SpringBoot进阶篇

今天的博客主题 SpringBoot——》SpringBoot进阶篇 springBoot是如何整合springMVC 1)回顾下什么是springMVC SpringMVC 全称(Spring Web MVC框架)是一个丰富的“模型-视图-控制器”Web框架。 SpringMVC使您可以创建特殊的@Controller或@RestController Bean来处理传入...

刘总Java 2313

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JAVA学习之路(七)—— SpringBoot

Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。SpringBoot 就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。

m0_46747954的博客 1904

2. SpringBoot进阶篇

1. SpringBoot Web配置作为springboot web环境的配置类,必须要实现WebMvcConfigurer接口,且必须将@Configuration注解添加到类配置类上1.1 配置拦截器创建拦截器@Componentpublic class MyInterceptor implements Handle...

qt1360726014的博客 1427

springboot学习笔记(七)

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。更多JVM面试整理:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!转存中…(img-W8qz4dg7-1712204678451)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_83329402的博客 457

SpringBoot学习(七)—— springboot快速整合Redis

Redis缓存 文章目录Redis缓存简介优势劣势引入redis缓存代码实战 简介 redis是一个高性能的key-value数据库 优势 性能强,适合高度的读写操作(读的速度是110000次/s,写的速度是81000次/s )。 支持较为丰富的数据类型(如二进制的Strings, Lists, Hashes, Sets ,Ordered Sets) 一定的事物能力(要么执行成功要么完...

lgx211 1941

SpringBoot学习笔记(七、Redis)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!6、Set7、ZSet一、Redis介绍===========================================================================Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对 数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、

2401_84093407的博客 1391

Springboot学习日记七

Springboot学习日记七 CommentServiceImpl.java @Service public class CommentServiceImpl implements ICommentService { @Autowired private CommentDao commentDao; @Override public void save(Comment comment) { if(comment.getParentComment().ge

qq_35891728的博客 173

Eclipse搭建springBoot进阶篇-SpringBoot+Mybatis

Eclipse搭建springBoot入门篇 https://blog.youkuaiyun.com/qq_17025903/article/details/85675839 在入门篇了搭建了一个简单的SpringBoot的Demo,在进阶篇将真正引入实战,也就是能支撑基本的企业中小型项目开发。 本次通过springBoot+Mybatis+maven等搭建一个适用于开发中小型项目的简单架构 ...

大道至简,悟在天成。 6314

SpringBoot学习(七)-SpringBoot集成Swagger

前后端分离前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险Swagger号称世界上最流行的API框架Restful Api 文档在线自动生成器 =>API 文档 与API 定义同步更新直接运行,在线测试API。

小孔靠得住的博客 999

SpringBoot学习笔记七:springBoot的常用模版引擎

1. SpringBoot学习笔记七:springBoot的常用模版引擎 文章目录1. SpringBoot学习笔记七:springBoot的常用模版引擎1.1. SpringBoot的Starter1.2. 常用的javaweb模版引擎1.3. SpringBoot整合模版引擎Freemarker1.4. springBoot整合thymeleaf 1.1. SpringBoot的Starter...

公子&小白的博客 716

SpringBoot学习入口

今天的博客主题 SpringBoot——》SpringBoot学习入口 SpringBoot 这块骨头属实难啃 如果你对 Spring SpringMVC 没有去深入的了解过,那 SpringBoot 是很难吸收到精髓的! 这里只是对SpringBoot的使用以及重要点做些了解调研。 要想深入吸收精髓,有必要先对Spring SpringMVC 下手。。。 ...

刘总Java 263
上一篇: 学习springBoot(六)
下一篇: 学习springBoot(八,AOP处理请求日志)
MagicMHD
博客等级 码龄9年 503粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值