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 定义文件

下一步

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架