springboot项目记录2用户注册功能

七、注册-业务层

7.1规划异常

7.1.1用户在进行注册的时候,可能会产生用户名被占用的错误,抛出一个异常;

RuntimeException异常,作为该异常的子类,然后再去定义具体的异常类型继承这个异常。

写一个业务层异常的基类,ServiceException异常,这个异常继承RuntimeException异常。

根据业务层不同的功能来详细定义具体的异常类型,统一的去继承ServiceException异常类。

7.1.2用户在注册的时候可能会产生用户名被占用的错误,抛出一个异常:UsernameDuplicatedException异常

7.1.3正在执行数据插入操作的时候,服务器、数据库宕机。处于正在执行插入操作过程中所产生的异常:

InsertException异常。

7.2设计接口和抽象方法

7.2.1在service包下创建一个IUserService

7.2.2创建一个实现类UserServiceImpl类,需要实现这个接口,并且实现抽象方法。

7.2.3在单元测试包下创建一个UserServiceTests类,在这个类中添加单元测试的功能。

八、注册-控制层

8.1创建响应

状态码,状态描述信息,数据。这部分功能封装在一个类中,将这个类作为方法返回值,返回给前端浏览器。

8.2 设计请求

依据当前的业务功能模块进行请求的设计。
请求路径:/user/reg
请求参数:user user
请求类型:POST(有敏感数据就用POST,没有就用get)
响应结果:JsonResult

8.3处理请求

8.3.1创建一个控制层对应的类UserController类。依赖于业务层的接口。

8.4 控制层优化设计

在控制层抽离一个父类,在这个父类中统一的去处理关于异常的相关操作。编写一个BaseController类,统一处理异常。

重新构建了reg()方法。

👆此为UserController类

👇此为BaseController类

Original: https://www.cnblogs.com/whiplash/p/16361668.html
Author: 小熊冰淇淋
Title: springboot项目记录2用户注册功能

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580585/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 基于springframework框架的不同网络请求request方式传参

    一、get方式 1.在url路径上传递参数,形如 /getTask/{taskId} 如/getTask/111 2.在url后面以?形式传递参数,形如/getTask?taskI…

    Java 2023年5月30日
    077
  • SpringMvc(一)-初识

    1、环境搭建 1.1 jar包 4.3.18.RELEASE org.springframework spring-web ${spring.version} org.spring…

    Java 2023年6月15日
    067
  • IDEA06 代码规范检测插件之Alibaba Java Coding Guidelines

    1 官方资料 1.1 官方介绍 https://mp.weixin.qq.com/s/IbibsXlWHlM59kfXJqRvZA#rd 1.2 github地址 https://…

    Java 2023年5月29日
    095
  • Ubuntu16桌面版编译和安装OpenCV4

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne…

    Java 2023年6月8日
    0111
  • 3、计算机系统漫游

    1 计算机的信息 2 编译系统 3 硬件系统 4 高速缓存 5 存储器层次结构 6 操作系统 6.1 操作系统的抽象表示 6.2 进程 6.3 线程 6.4 虚拟内存 7 系统之间…

    Java 2023年6月7日
    0100
  • 【翻译】2 序列化过滤

    来源:Java官方文档 译者的话 由于译者的英文水平和编程水平都不高,不理解原文中的一些概念,一些句子也不知道如何翻译。对不知如何翻译的内容,译者使用了机器翻译,并在译文后面的括号…

    Java 2023年6月6日
    086
  • java根据模板生成word文档

    首先引入pom.xml <dependency> <groupid>org.apache.poi</groupid> <artifacti…

    Java 2023年6月13日
    096
  • 【Java分享客栈】一文搞定CompletableFuture并行处理,成倍缩短查询时间。

    前言 工作中你可能会遇到很多这样的场景,一个接口,要从其他几个service调用查询方法,分别获取到需要的值之后再封装数据返回。 还可能在微服务中遇到类似的情况,某个服务的接口,要…

    Java 2023年6月9日
    094
  • 二分搜索树遍历

    目录 二分搜索树深度优先遍历 Java 实例代码 二分搜索树层序遍历 Java 实例代码 二分搜索树深度优先遍历 二分搜索树遍历分为两大类,深度优先遍历和层序遍历。 深度优先遍历分…

    Java 2023年6月5日
    080
  • 重启rabbitmq服务

    重启rabbitmq服务通过两个命令来实现: rabbitmqctl stop :停止rabbitmq rabbitmq-server restart : 重启rabbitmq 因…

    Java 2023年5月30日
    0140
  • 优雅的代码从现在开始

    个人见解: 写代码前 构思明白, 想明白,想全 写着写着都是在写相同的代码,改动麻烦 看到不好的就立马让他优雅 学习别人是如何优雅的 便于维护,避免重复代码,便于开发 提取公共函数…

    Java 2023年6月14日
    080
  • Hibernate数据校验简介

    我们在业务中经常会遇到参数校验问题,比如前端参数校验、Kafka消息参数校验等,如果业务逻辑比较复杂,各种实体比较多的时候,我们通过代码对这些数据一一校验,会出现大量的重复代码以及…

    Java 2023年6月8日
    080
  • Skywalking-09:OAL原理——如何通过动态生成的Class类保存数据

    OAL 如何通过动态生成的 Class 类,保存数据 前置工作 OAL 如何将动态生成的 SourceDispatcher 添加到 DispatcherManager // org…

    Java 2023年6月5日
    089
  • 【软件构造】抽象数据类型ADT

    【软件构造】抽象数据类型ADT 1.前言 在Lab2中,涉及到了大量的ADT、RI、AF的设计,仅以此篇博客做一个小小的总结。🥰 2.ADT定义 除了java等编程语言自带的数据类…

    Java 2023年6月5日
    0132
  • JVM学习 运行时数据区 PC寄存器、本地方法栈、虚拟机栈

    2、运行时数据区 哔哩哔哩 尚硅谷视频 宋红康老师 2.1、程序计数器(PC寄存器) 作用 PC寄存器用来存储指向下一条指令的地址,也就是即将要执行指令的代码。由执行引擎读取下一条…

    Java 2023年6月16日
    095
  • 大批量数据的插入优化的小细节

    今天在测试将elasticsearch中的20万条数据迁移到MySQL中时,总感觉速度比较慢,尝试了好多方法,比如网上都说的: public void batchSave(List…

    Java 2023年6月7日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球