1、包的命名规范

设有公司统一包名如:com.deertech 包(根据项目单位命名),不允许直接在此包下直接建立模块,要先创建一个 modules 包。

  • 模块格式:com.deertech.modules.模块名.分层.子模块名.功能类
    • 分层为 entity、dao、service、web、utils、config
    • 若模块下只有几个功能,没有子模块,就不需要再建立子模块了
  • Spring Boot 自动配置文件格式:com.deertech.autoconfigure.模块名.配置类
    • 自动配置的类,在 META-INF/spring.factories 里指定
  • 通用封装包或工具类:com.deertech.common.大类.小类.封装类

2、分层命名规范

Controller

操作 命名 备注
类名 以Controller结尾,继承BaseController UserController
类上的映射路径 ${adminPath} / 模块 / 子模块 / 功能 ${adminPath}/sys/user
自动注入属性 与注入名相同,不允许注入 Dao @Autowired
方法上的映射路径 与方法名相同 @RequestMapping
方法上的权限字符串 模块名:子模块名:控制器名:功能名 @RequiresPermissions
每次请求都会执行的方法 get @ModelAttribute
列表页面 list
列表数据 listData
新增或编辑表单 form
新增或编辑提交地址 save
删除 delete
停用 disable
启用 enable
主键校验 check开头
导入 import开头
导出 export开头
树结构数据 treeData

四名保持命名联系: Controller类名、映射路径、方法名、视图文件名,举例如下:

操作 命名 备注
类名 SysEmpUserController.java 系统模块可不加 Sys
映射路径 /sys/empUser/list /模块[/子模块]/功能/操作
映射方法 public list() {} 功能名,如列表:list,列表数据:listData,表单:form
视图文件名 empUserList.html 不要直接命名为 list.html(写全方便查找)
视图文件路径 /src/main/resources/views/modules/sys/empUser/ 统一放 resources 资源目录下
Vue视图命名 /src/views/sys/empUser/list.vue 与映射路径一致

遵循一定的命名规范,可快速根据映射路径找到对应的源代码。

Service

操作 命名 备注
类名 以Service结尾 继承 CrudService,TreeService,QueryService
查询一条数据 get 以 get 开头
插入数据 insert 以 insert 开头
更新数据 update 以 update 开头
新增或编辑 save 以 save 开头
删除 delete 以 delete 开头
查询多条数据 findList 以 find 开头
查询多条分页 findPage 以 find 开头

Dao

操作 命名 备注
类名 以Dao结尾 继承 CrudDao,TreeDao,QueryDao
查询一条数据 get 以 get 开头
插入数据 insert 以 insert 开头
更新数据 update 以 update 开头
删除 delete 以 delete 开头
物理删除 phyDelete
查询多条数据 findList 以 find 开头

Entity

操作 命名 备注
类名 根据表名以驼峰命名法转换 继承 DataEntity,TreeEntity,BaseEntity
主键 @Column(isPk=true) 指定主键的列会自动与 getId() setId() 绑定
验证方法 Hibernate Validator 例如:@Length,@NotNull,查看文档
注解位置 依据能写 get 方法上绝不写字段上原则
父类中已有的属性 父类中已有的属性无需定义,特殊情况除外
非表属性的字段 如查询字段,必须写清楚注释说明用途。

3、视图文件规范

所有视图文件均放在:模块项目/src/main/resources/views 目录下,尽量不放在web项目下,约束如下:

名称 说明
include 公共视图代码块
layouts 公共视图布局文件
modules 功能模块视图文件,格式:/modules/模块名[/子模块]/功能页面
themes 个性化主题视图文件存放路径,格式:/themes/modules/模块名[/子模块]/功能页面

4、静态文件规范

所有静态文件均放在:模块项目/src/main/resources/static目录下,尽量不放在web项目下,约束如下:

名称 说明
common 存放公共脚本,不建议项目使用过程中修改。
modules 项目相关的模块 js 和 css 文件存放位置,格式:/modules/模块名[/子模块]/静态文件
themes 个性化主题视图文件存放路径,格式:/themes/modules/模块名[/子模块]/静态文件
组件文件 格式:组件名/组件版本/组件文件,例如:/static/echarts/4.2/组件文件包

5、Vue 分离端目录规范

├── build                打包脚本相关
│   ├── config           配置文件
│   ├── generate         样式生成器
│   ├── script           编译脚本
│   └── vite             vite配置
├── mock                 mock文件夹
├── public               公共静态资源目录
├── src                  源码主目录
│   ├── api              数据接口文件
│   ├── assets           资源文件
│   │   ├── icons        图标文件夹
│   │   ├── images       图片的文件夹
│   │   └── svg          svg图片的文件夹
│   ├── components       公共组件
│   ├── design           样式文件
│   ├── directives       指令
│   ├── enums            枚举/常量
│   ├── hooks            hook
│   │   ├── component    组件相关hook
│   │   ├── core         基础核心hook
│   │   ├── event        事件相关hook
│   │   ├── setting      配置相关hook
│   │   └── web          web相关hook
│   ├── layouts          布局文件
│   │   ├── default      默认布局
│   │   ├── iframe       iframe布局
│   │   └── page         页面布局
│   ├── locales          多语言
│   ├── logics           逻辑
│   ├── App.vue          主页面
│   ├── main.ts          主入口
│   ├── router           路由配置
│   ├── settings                   项目配置
│   │   ├── componentSetting.ts    组件配置
│   │   ├── designSetting.ts       样式配置
│   │   ├── encryptionSetting.ts   加密配置
│   │   ├── localeSetting.ts       多语言配置
│   │   ├── projectSetting.ts      项目配置
│   │   └── siteSetting.ts         站点配置
│   ├── store             本地存储
│   ├── utils             工具类
│   └── views             视图页面
│       ├── bpm           工作流模块
│       ├── sys           系统核心模块
│       └── test          测试功能模块
├── test                  测试
│   └── server            测试用到的服务
│       ├── api           测试服务器
│       ├── upload        测试上传服务器
│       └── websocket     测试ws服务器
├── types                 类型文件
├── .env                  全局属性配置
├── .env.development      开发环境属性配置
├── .env.production       开发环境属性配置
├── package.json          项目信息和依赖配置
├── vite.config.ts        vite配置文件
└── windi.config.ts       windcss配置文件

6、其他

主键:有意义的,有规则的数据必须采用手动编码方式,不允许使用 UUID 自动生成注解表示,方便运维,例如:组织机构编码,区域编码