Skip to content

生成代码结构与二开边界 ​

生成的文件分层 ​

生成的代码
├── 后端 Java
│   ├── Entity          ← 可直接使用
│   ├── Mapper.java     ← 可直接使用
│   ├── Mapper.xml      ← 可直接使用(需补充自定义 SQL)
│   ├── Service.java    ← 接口,可直接使用
│   ├── ServiceImpl     ← 可直接使用(业务逻辑在此扩展)
│   └── Controller      ← 可直接使用(可追加自定义接口)
├── 前端 Vue
│   ├── index.vue       ← 列表页,可直接使用
│   ├── Form.vue        ← 表单弹窗,可直接使用
│   └── xxx.js          ← API 定义,可直接使用
└── SQL
    └── menu.sql        ← 菜单注册脚本,需执行

可直接使用的文件 ​

以下文件生成后无需修改即可运行:

文件说明
Entity实体类,字段与数据库一致
Mapper.java基础 CRUD 接口
Mapper.xml基础分页查询 SQL
Service.java服务接口定义
Vue index.vue标准 CRUD 列表页
Vue Form.vue标准 CRUD 表单弹窗
API xxx.js前端 API 调用

需要手动修改的文件 ​

文件修改场景修改方式
ServiceImpl添加业务逻辑在方法中补充业务代码
Mapper.xml添加自定义查询新增 SQL 语句
Controller添加自定义接口新增方法
Vue index.vue自定义列表交互修改组件逻辑
Vue Form.vue自定义表单交互修改组件逻辑

代码合并策略 ​

后端合并 ​

  • Entity、Mapper、Service 接口:保持生成版本,不手动修改
  • ServiceImpl:生成的方法为基线,在方法内添加业务逻辑
  • Mapper XML:基础 SQL 保留,自定义 SQL 追加在文件末尾
  • Controller:基础接口保留,自定义接口追加

前端合并 ​

  • API 文件:保持生成版本,追加自定义 API
  • Vue 页面:以生成版本为模板,按需修改交互逻辑

重新生成时的合并 ​

场景策略
表结构变更重新生成 Entity 和 Mapper,手动合并 ServiceImpl
新增字段重新生成全部文件,使用 diff 工具手动合并
仅修改配置重新生成后直接覆盖

最佳实践 ​

  1. 生成代码后先提交一次 Git,作为基线版本
  2. 业务逻辑修改在 ServiceImpl 中进行,不修改接口签名
  3. 自定义 SQL 写在 Mapper XML 中,不使用 LambdaQueryWrapper
  4. 前端修改保持在组件级别,不修改 API 定义文件

下一步 ​