SpringBoot3+Vue3前后端分离的Java快速开发框架(Harry技术)配套代码生成器

174 阅读3分钟

SpringBoot3+Vue3前后端分离的Java快速开发框架(Harry技术)配套代码生成器

项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Knife4j等构建后端,基于Vue 3、Element-Plus 、TypeScript等构建前端的分离单体权限管理系统。

推荐阅读

SpringBoot3+Vue3前后端分离的Java快速开发框架开源啦

下载项目

项目地址:

后端:gitee.com/harry-tech/…

前端:gitee.com/harry-tech/…

运行项目

后端

下载harry,导入idea

  • 创建数据库harry3,数据库编码为UTF-8

  • 执行db/harry3_0106_all.sql文件,初始化数据

  • 修改application.yml,更新MySQL账号和密码

  • IDEA运行HarryApplication.java,则可启动项目

    harry3_0106_all.sql 这个文件是最新得全量脚本。

前端

下载harry-vue

# 克隆代码
git clone https://gitee.com/harry-tech/harry-vue.git
​
# 进入项目目录
cd harry-vue
​
# 安装 pnpm
npm install pnpm -g
​
# 设置镜像源(可忽略)
pnpm config set registry https://registry.npmmirror.com
​
# 安装依赖
pnpm install
​
# 启动运行
pnpm run dev

设计表结构

创建一个demo表

CREATE TABLE `demo` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '书籍ID',
  `title` varchar(255) NOT NULL COMMENT '标题',
  `author` varchar(255) DEFAULT NULL COMMENT '作者',
  `isbn` varchar(13) DEFAULT NULL COMMENT 'ISBN',
  `description` text COMMENT '简介',
  `available` tinyint(1) DEFAULT '1' COMMENT '是否可借',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
  `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
  `valid` int DEFAULT '1' COMMENT '有效状态,0:无效 1:有效',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='书籍表';

公共字段

id, create_time,create_by,modify_time, modify_by ,valid 建议每张表中都有这几个公共字段

配合后端BaseEntity使用,方便后续对创建人、修改人使用插件自动导入

package cn.harry.common.base;
​
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
​
import java.io.Serializable;
import java.util.Date;
​
/**
 * 抽象实体
 *
 * @author harry
 * @公众号 Harry技术
 */
@Getter
@Setter
public class BaseEntity implements Serializable {
​
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 创建者
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
​
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
​
    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String modifyBy;
​
    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date modifyTime;
}

生成代码

运行前端,点击代码生成菜单,生成代码

image-20250106141813871

基础配置

image-20250106142256579

包名:建议都放在cn.harry.modular下,方便模块化维护项目

字段配置

微信截图_20250106134537

这里可以配置页面上列表显示/表单显示/以及查询方式等格式

预览

微信截图_20250106134546

这里可以看到前后端代码生成的情况,如需调整可以返回上一步进行调整,然后下载代码,这里会生成一个压缩包,将压缩包中的代码复制到项目相应位置,根据项目情况配置菜单即可。

image-20250106143826952

重新启动后页面展示

image-20250106143424399

  • 新增

image-20250106143651762

  • 修改 image-20250106143712573

开发过程中不能完全依赖代码生成器,这里页面上需要稍微手动调整一下,如:新增的时候会存在ID,创建时间等字段,这里需要手动删除代码

后端生成的mapper xml 路径 demo.mapper,可以调整为 mapper.demo ,后续会继续完善代码生成器,争取减少开发过程中的手动修改

觉着有帮助,给个Star再走呗~~~

公众号搜“Harry技术”,关注我,带你看不一样的人间烟火!