96SEO 2026-02-19 22:30 0
。

上篇博客是已经基本完成用户模块的注册接口的开发。
springboot实战学习笔记#xff08;3#xff09;(Lombok插件、postman测试工具、MD5加密算法、post请求、接口文档、注解、如何在IDEA中设置层级显示包结构、显示接口中的方法)-CSDN博客本篇博客主要是关…
接着上篇博客学习。
上篇博客是已经基本完成用户模块的注册接口的开发。
springboot实战学习笔记3(Lombok插件、postman测试工具、MD5加密算法、post请求、接口文档、注解、如何在IDEA中设置层级显示包结构、显示接口中的方法)-CSDN博客本篇博客主要是关于用户模块的”注册“的后端所有接口的写法。
其中主要包括插件lombok(自动生成getter、setter等等方法)、注解Data、接口开发文档、post请求、Md5加密算法运用、如何在IDEA中设置包结构层级展示以及设置所以接口中的方法展示、测试工具postman的使用等等......https://blog.csdn.net/m0_74363339/article/details/142312514但是忘记去做一个参数校验因为接口文档中对username、password有一个限制。
我们要保证前端传进来的参数不符合这个规则是不能完成注册的
第二步。
在需要校验的参数前添加注解Pattern并且给它里面的参数regexp赋值(正则表达式)。
其中\\S的介绍如下。
因为上面测试时参数调用失败则会抛出一个异常如上。
然后显示一个status500这不知道哪里出了问题。
不符合接口文档里面提供的响应信息的格式。
所以得继续完善对上面的异常进行处理。
4、全局异常处理器处理参数校验失败的异常(GlobalExceptionHandler)
org.springframework.beans.factory.annotation.Autowired;
org.springframework.web.bind.annotation.PostMapping;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;/***
userService;PostMapping(/register)public
password.length()16){//查询用户User
userService.findByName(username);if(usernull){//没有占用//注册userService.register(username,password);return
往前看之前写的手动参数校验的代码非常繁琐关是两个参数就很麻烦了所以还需要改进才行
提供了一种声明式验证机制可以在不侵入业务代码的情况下对数据进行校验。
在表单提交时验证用户输入的数据。
在数据持久化之前验证数据的完整性和正确性。
在服务层或业务层进行数据转换或处理前的验证。
提供了灵活且强大的数据验证能力是开发过程中不可或缺的一个工具。
第一次添加该依赖需要手动打然后刷新Maven本地仓库没有就让它去镜像里下载
第二步。
在需要校验的参数前添加注解Pattern并且给它里面的参数regexp赋值(正则表达式)。
其中\\S的介绍如下。
正则表达式中的^$是一个非常特殊的模式它用来匹配空字符串也就是说这个模式会匹配那些长度为0的字符串即没有任何字符的字符串。
解释^表示字符串的开始位置。
$表示字符串的结束位置。
当这两个符号连在一起使用时它们之间没有任何其他字符因此这个正则表达式只能匹配那些开始和结束位置重合的字符串即空字符串
另一个特殊的元字符用于匹配任何非空白字符。
不过注意在大多数编程语言中反斜杠
是一个转义字符所以当你想要在字符串中表示一个反斜杠时你通常需要写两个反斜杠\\
jakarta.validation.constraints.Pattern;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.validation.annotation.Validated;
org.springframework.web.bind.annotation.PostMapping;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;/***
userService;PostMapping(/register)public
userService.findByName(username);if(usernull){//没有占用//注册userService.register(username,password);return
因为上面测试时参数调用失败则会抛出一个异常如上。
然后显示一个status500这不知道哪里出了问题。
不符合接口文档里面提供的响应信息的格式。
所以得继续完善对上面的异常进行处理。
4、全局异常处理器处理参数校验失败的异常(GlobalExceptionHandler)
创建一个类。
然后在类上添加注解RestControllerAdvice。
用它来标识这个类是用来处理异常的。
因为我们添加的是注解RestXXX。
所以这个类里面的所有方法的返回值都会被转换成JSON字符串响应给浏览器。
然后在类里面需要添加一个方法去处理异常。
在方法上需要添加注解ExceptionHandler(Exception.class)。
Exception.class是指处理所有的异常。
这个方法的返回值是result。
当出了异常返回的结果也是会满足接口文档的要求。
再在包下创建一个类GlobalExceptionHandler。
在类上添加一个注解RestControllerAdvice。
在类的内部添加一个方法handException()方法上要写一个注解ExceptionHandler(Exception.class)。
方法返回值是Result对象。
在Exception会封装一个错误提示信息e.getMessge()但是一些异常信息并没有封装。
所以还要用到Spring提供的String字符串的工具类StringUtils的hasLength()方法问返回的return的e.getMessage()是否存在错误原因若没有就返回操作失败。
org.springframework.util.StringUtils;
org.springframework.web.bind.annotation.ExceptionHandler;
org.springframework.web.bind.annotation.RestControllerAdvice;/***
{ExceptionHandler(Exception.class)public
//在方法里参数要声明一个变量去接收一旦捕获到异常对象就要处理e.printStackTrace();return
Result.error(StringUtils.hasLength(e.getMessage())?e.getMessage():操作失败);}
本篇博客使用Validation对注解接口的参数进行了校验。
要使用Validation需要做的几步如下。
其中它不只有一个注解Pattern...
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback