当前位置: 首页 > news >正文

项目规范 编写规范(范例)

项目目录

目录接口参考 项目目录结构设计,增加部分领域模型后缀强制定义,方便统一编码风格。

controller:请求处理 @RestController
module:按大业务区分,对多个业务对象数据聚合处理  @Component
manager:按业务对象区分,对同一业务对象的数据聚合处理 @Component
service:按业务对象区分,主要负责数据获取
 impl:主要负责数据获取的接口的具体实现 @Service
dao:主要负责数据访问层
xxxDao:固定后缀 Dao @Repository
config:配置类集合目录

dto:数据传输协议,用于 module、manager、service之间的数据传输

xxxDTO:固定后缀 DTO

model:持久层数据协议映射

xxxBean:固定后缀 Bean

query:前端请求接收DTO,用于接收及校验参数

xxxQuery:固定后缀 Query
vo:返回前端数据封装视图DTO

xxxVO:固定后缀 VO
component:流程扩展处理模块,如redis操作,aop,过滤器等
utils: 主要负责一些通用工具类的集合目录

resources
mapper
xxxMapper.xml  Mybatis 复杂sql实现,简单sql可用mybatis plus 接口实现

TODO: 项目脚手架

response-starter

1、统一返回封装

{
“statusCode”: 0,
“statusMsg”: “success”,
“data” : null
}
2、自定义异常  BaseException

3、自定义响应码枚举及接口   ResponseEnum DefaultResponseEnum

3、ControllerAdvice 全局异常 处理

/**

  • 自定义异常
  • @param ex 自定义异常 {@link BaseException}
  • @return 返回 200
    */
    @ResponseStatus(HttpStatus.OK)
    @ExceptionHandler(BaseException.class)
    public BaseResponseVO handleBusException(BaseException ex) {
    return new BaseResponseVO<>(ex.getCode(), ex.getMsg(), ex.getData());
    }

/**

  • 参数校验失败
  • @param e {@link MethodArgumentNotValidException}
  • @return 返回 400
    */
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public BaseResponseVO methodArgumentNotValidException(MethodArgumentNotValidException e) {
    ObjectError objectError = e.getBindingResult().getAllErrors().get(0);
    return new BaseResponseVO<>(DefaultResponseEnum.VALIDATE_FAILED, objectError.getDefaultMessage());
    }

/**

  • 未定义异常
  • @param e 异常
  • @return 返回 500
    */
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    @ExceptionHandler(Exception.class)
    public BaseResponseVO handleException(Exception e) {
    return new BaseResponseVO<>(DefaultResponseEnum.FAIL, e.getMessage());
    }

4、ExceptionControllerAdvice 和 ResponseControllerAdvice 默认关闭,开启方式 application.yml 配置

zixun:
response:
advice-exception-enabled: true
advice-response-body-enabled: true

5、返回对象属性默认为 statusCode 和 statusMsg, 修改方式 application.yml 配置

zixun:
response:
status-code: status_code
status-msg: status_msg

相关文章:

项目规范 编写规范(范例)

项目目录 目录接口参考 项目目录结构设计&#xff0c;增加部分领域模型后缀强制定义&#xff0c;方便统一编码风格。 controller&#xff1a;请求处理 RestController module&#xff1a;按大业务区分&#xff0c;对多个业务对象数据聚合处理 Component manager&#xff1a;…...

MongoDB数据库操作及操作命令

目录 一、基础概念 二、安装mongod 三、命令交互数据库 &#xff08;1&#xff09;数据库命令 &#xff08;2&#xff09;集合命令 &#xff08;3&#xff09;文档命令 四、Mongoose &#xff08;1&#xff09;增加一条数据 &#xff08;2&#xff09;插入多个数据 &am…...

Linux命令(62)之tee

linux命令之tee 1.tee介绍 linux命令tee于读取标准输入的数据&#xff0c;并将内容输出为文件 2.tee用法 tee [参数] [filename] tee参数 参数说明-a读取标准输入的数据&#xff0c;并将内容追加到文件&#xff0c;而非覆盖-i忽略中断信号 3.实例 3.1.将ls -l输出内容作为…...

搭建Repo服务器

1 安装repo 参考&#xff1a;清华大学开源软件镜像站:Git Repo 镜像使用帮助 2 创建manifest仓库 2.1 创建仓库 git init --bare manifest.git2.2 创建default.xml文件 default.xml文件内容&#xff1a; <?xml version"1.0" encoding"UTF-8" ?…...

安卓:MMKV——键值存储库

目录 一、MMKV介绍 1.特点和优势&#xff1a; 2.使用指南&#xff1a; 3.依赖包&#xff1a; 二、MMKV的常用方法 1、初始化和获取实例&#xff1a; 2、存储数据&#xff1a; 3、读取数据 4、删除数据 5、其他操作&#xff1a; 三、MMKV的使用例子 MainActivity&#xff…...

使用Python将图像转换为PDF:一次性解决您的批量转换需求

导语&#xff1a; 在数字化时代&#xff0c;我们经常需要处理大量的图像文件。将这些图像转换为PDF格式可以方便地存档、分享和打印。本文将介绍如何使用Python编程语言将图像批量转换为PDF&#xff0c;并提供了一个简单易用的图形界面来跟踪转换进度。 准备工作 在开始之前…...

Vue——webpack

webpack 一、Install1.全局安装2.局部安装 二、总结1.打包2.定义脚本3.配置文件定义&#xff08;webpack.config.js)4.项目重新加载依赖5.webpack打包Css6.style-loader 一、Install 1.全局安装 npm install webpack webpack-cli -g2.局部安装 以项目为单位&#xff0c;一个项…...

springboot房地产管理java购房租房二手房j客户sp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 springboot房地产管理 系统1权限&#xff1a;管理员 …...

Gartner 发布影响数据科学和机器学习未来方向重要趋势

出品 | CSDN 云计算 供稿 | Gartner Gartner今日发布了影响数据科学与机器学习&#xff08;DSML&#xff09;未来方向的重要趋势。随着DSML行业的快速发展和演变&#xff0c;数据对于人工智能&#xff08;AI&#xff09;开发与运用的重要性日益提高&#xff0c;尤其是投资重点…...

72. 编辑距离

题目介绍 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 示例 1&#xff1a; 输入&#xff1a;word1 "horse", word2 &q…...

Android12.0 原生系统SystemUI下拉状态栏和通知栏视图之锁屏通知布局

1.前言 在12.0的系统rom定制化开发中,对于系统原生systemui的锁屏界面的功能也是非常重要的,所以在锁屏页面布局中,也是有通知栏布局的,所以接下来对于息屏亮屏 通知栏布局的相关流程分析,看下亮屏后锁屏页面做了哪些功能 2.原生系统SystemUI下拉状态栏和通知栏视图之锁…...

周末在家值班,解决几个月前遗忘的Bug

问题&#xff1a; 周末被迫在家值班&#xff0c;无聊之际打开尘封已久的Bug清单&#xff0c;发现有Bug拖了几个月还没解决… 场景是这样子的&#xff0c;有个功能是拿Redis缓存热点数据进行展示&#xff0c;暂且称它为功能A&#xff0c;有个另外的功能B&#xff0c;它会去更新缓…...

Shell编程基础(十五)文本三剑客(sed)

文本三剑客&#xff08;sed&#xff09; 使用场景基本语法实例命令列表 使用场景 sed提供了一种面交互的方式修改文件内容。 它是一行一行处理&#xff0c;可以通过正则匹配要修改的部分 基本语法 基本语法 sed [-opt] command files(多个文件 空格隔开) sed 使用正则 sed -…...

5,二叉树【p6-p7】

二叉树 5.1二叉树5.1.1例1&#xff1a;用递归和非递归两种方式实现二叉树的先序、中序、后序遍历5.1.1.1递归序的先序、中序、后序遍历先序遍历&#xff1a;中序遍历&#xff1a;后序遍历&#xff1a; 5.1.1.2非递归序的先序、中序、后序遍历先序遍历&#xff1a;中序遍历&…...

【Spring】如果你需要使用重试机制,请使用Spring官方的Spring Retry

文章目录 前言Spring Retry的基本使用第一步&#xff0c;引入Spring Retry的jar包第二步&#xff0c;构建一个RetryTemplate类第三步&#xff0c;使用RETRY_TEMPLATE注意事项 拓展方法降级操作重试策略&#xff1a;时间策略重试策略&#xff1a;指定异常策略 前言 Spring Retr…...

pagehelper 优化自定义分页和排序位置

pagehelper开源地址 https://github.com/pagehelper/Mybatis-PageHelper 1.手写Count查询优化 源码分页count时首先是判断是否存在手写的 {业务查询id}_COUNT 的查询count统计 private Long count(Executor executor, MappedStatement ms, Object parameter,RowBounds rowBound…...

Linux下查询文件夹中文件数量的方法

一、前言 在Linux系统中&#xff0c;我们经常需要查询文件夹中包含多少文件。本文将介绍三种在Linux中查询文件夹中文件数量的方法&#xff0c;帮助你轻松获取所需信息。 二、方法 1、使用ls命令和wc命令 使用ls命令的-l选项和管道操作符|结合wc命令来统计文件数量&#xf…...

PS透明屏,在科技展示中,有哪些优点展示?

PS透明屏是一种新型的显示技术&#xff0c;它将传统的显示屏幕与透明材料相结合&#xff0c;使得屏幕能够同时显示图像和透过屏幕看到背后的物体。 这种技术在商业展示、广告宣传、产品展示等领域有着广泛的应用前景。 PS透明屏的工作原理是利用透明材料的特性&#xff0c;通…...

Hbase-面试题

1. Hbase-region切分 自动切分&#xff0c;默认情况下 2.0版本&#xff0c;第一次region的数据达到256M&#xff0c;会进行切分&#xff0c;以后就是每达到10G切分一次&#xff0c;切分完成后&#xff0c;会进行负载均衡&#xff0c;均衡到其他regionserver预分区自定义rowke…...

图的宽度优先深度优先遍历

图常见的遍历方式有两种&#xff0c;一种是宽度优先遍历&#xff0c;一种是深度优先遍历。 宽度优先遍历 宽度优先遍历和之前介绍的二叉树的层级遍历类似&#xff0c;主要也是利用Queue来完成层级的遍历&#xff0c;除此之外&#xff0c;因为图中很可能有环&#xff0c;所以还…...

Unity ShaderGraph工程化实践:从可视化到生产级渲染

1. 为什么我劝新手别急着写第一行Shader代码——从Unity ShaderGraph的“可视化错觉”说起 刚接触Unity渲染管线的新手&#xff0c;十有八九会经历这样一个阶段&#xff1a;在B站搜“Unity Shader教程”&#xff0c;点开前三个视频&#xff0c;前两分钟听着“顶点着色器负责位置…...

Tonzhon音乐:纯净无干扰的现代音乐播放平台终极指南

Tonzhon音乐&#xff1a;纯净无干扰的现代音乐播放平台终极指南 【免费下载链接】tonzhon-music 铜钟 Tonzhon (tonzhon.whamon.com): 干净纯粹的音乐平台 (铜钟已不再使用 tonzhon.com&#xff0c;现在的 tonzhon.com 不是正版的铜钟) 项目地址: https://gitcode.com/GitHub…...

Inno Setup 简体中文语言包:3分钟让Windows安装程序说中文![特殊字符]

Inno Setup 简体中文语言包&#xff1a;3分钟让Windows安装程序说中文&#xff01;&#x1f680; 【免费下载链接】Inno-Setup-Chinese-Simplified-Translation :earth_asia: Inno Setup Chinese Simplified Translation 项目地址: https://gitcode.com/gh_mirrors/in/Inno-S…...

在家办公效率低?试试这个“空间切换”技巧

一、软件测试从业者居家办公的效率困境对于软件测试从业者而言&#xff0c;居家办公看似摆脱了办公室的嘈杂与束缚&#xff0c;实则面临着诸多独特的效率挑战。测试工作本身就需要高度的专注与严谨&#xff0c;从需求分析、用例设计到缺陷跟踪&#xff0c;每一个环节都容不得半…...

GANsformer:用Transformer重构GAN判别与生成机制

1. 项目概述&#xff1a;当生成对抗网络遇上Transformer&#xff0c;不是简单拼接&#xff0c;而是架构级重构“Generative Adversarial Transformers: GANsformers Explained”这个标题一出来&#xff0c;很多做生成模型的老手第一反应是&#xff1a;“又一个蹭热点的命名游戏…...

双十一话务峰值8倍冲击_智能语音机器人扛峰技术方案

双十一话务峰值8倍冲击&#xff1a;国内主流的智能语音机器人推荐这样扛本文从技术架构视角&#xff0c;解析智能语音机器人在电商大促场景下应对话务峰值冲击的核心方案。一、电商大促场景下的客服联络核心挑战 每年双十一、618 等大促节点&#xff0c;电商零售行业的话务量都…...

揭秘Midjourney V6蒸汽波出图失败率高达63%的底层原因:3步绕过平台封禁,稳定生成霓虹故障美学

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;蒸汽波美学的数字幽灵&#xff1a;Midjourney V6封禁机制本质解构 蒸汽波&#xff08;Vaporwave&#xff09;以低保真采样、CRT扫描线、80年代商业图腾与数字怀旧为视觉语法&#xff0c;其美学内核恰恰在于对…...

YOLOv11公共场所吸烟行为目标检测数据集-6496张-smoking-detection-1

YOLOv11公共场所吸烟行为目标检测数据集 &#x1f4ca; 数据集基本信息 目标类别&#xff1a; [‘not_smoking’, ‘smoking’]中文类别&#xff1a;[‘不吸烟’, ‘吸烟’]训练集&#xff1a;5644 张验证集&#xff1a;569 张测试集&#xff1a;283 张总计&#xff1a;6496 张…...

3步让PS手柄在Windows上完美运行:DS4Windows终极配置指南

3步让PS手柄在Windows上完美运行&#xff1a;DS4Windows终极配置指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾为心爱的PlayStation手柄在Windows电脑上无法被游戏识别而烦…...

UVa 255 Correct Move

题目分析 这是一道关于国际象棋棋盘上王和后移动规则的模拟问题。题目描述了一个 888 \times 888 的棋盘&#xff0c;格子编号从 000 到 636363&#xff0c;编号方式为逐行排列&#xff08;第 000 行&#xff1a;0∼70 \sim 70∼7&#xff0c;第 111 行&#xff1a;8∼158 \sim…...