# code-generator-component **Repository Path**: shengyulv/code-generator-component ## Basic Information - **Project Name**: code-generator-component - **Description**: 代码生成器 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-12-30 - **Last Updated**: 2026-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # code-generator-component #### 代码生成器简介 用于通过数据表生成代码初始化结构,辅助快速开发。 [![piLz3oF.png](https://s11.ax1x.com/2023/12/30/piLz3oF.png)](https://imgse.com/i/piLz3oF) [![piLzGi4.png](https://s11.ax1x.com/2023/12/30/piLzGi4.png)](https://imgse.com/i/piLzGi4) [![piLz1dU.png](https://s11.ax1x.com/2023/12/30/piLz1dU.png)](https://imgse.com/i/piLz1dU) #### 软件架构概述 1. 架构方式: 采用DDD领域驱动设计思想以及springBoot分模块开发方式进行架构。 2. 后端技术选型: Spring、SpringJdbcTemplate、Lombook、Apache Velocity、Hutool 3. 前端技术选型: Vue、ElementUI #### 项目结构说明 | 模块 | 描述 | | ------ | ------ | | code-generator-core | 组件源码,主要功能模块 | | code-generator-start | 项目启动模块 (包含演示所需sql) | | code-generator-ui | 项目前端模块 | #### 使用说明 ​ 该工具用两种使用方式,打包成jar在本机当做客户端工具使用。也可使用maven install 命令安装到本地maven仓库 (有maven私服的情况下也可用maven deploy命令发布到私服)作为后端技术组件使用。 ​ 作为客户端工具使用,首先需要配置` application.properties`文件,数据库连接信息。并且需要配置好代码生成相关属性方便在生成数据库实体类时,自动生成mybatis-plus 相关注解。 ```properties # =====================代码生成相关配置===================== # 逻辑删除字段名称 generator.table-delete-logic-flag=delete_flag # 创建时间字段名称 generator.table-insert-time-flag=create_time # 修改时间字段名称 generator.table-update-time-flag=update_time # 是否删除代码生成临时文件 generator.delete=true ``` ​ 在后端能够成功运行后,可以启动前端项目进行功能调试验证 。在后端接口能够正常处理请求后,为方便使用必须进行前端项目打包。由于前端是用vue脚手架进行开发并且专门做了跨域配置,打包后的前端文件中的请求将会是一个相对路径。不会同时占用本机两个端口,在进行微服务项目开发过程中需要本地启动多个服务调试时若遇端口冲突问题可直接更改代码生成器后端接口重新打包。 ​ 在前端模块执行`npm`命令 ```shell npm run build ``` 该命令执行完成后会生成一个名称为`dist`的文件夹,将其复制到`code-generator-core`模块下的`resources/static`目录下。由于due脚手架设计的初衷是为了方便打包后在ngix部署,打包后的文件都是相对路径。该方案是在`Tocat`容器部署,相对路径会存在问题需要手动做一些修改。 ```html code-generator-ui
``` 该工具打包后的css文件中也会有两个搜索框相关的图标用的是elementUI提供的图标,打包后是相对路径也需要用上述方法手动处理。 ​ 前端文件打包放到后端后可启动项目,当可直接在访问地址 http://127.0.0.1:8098/dist/index.html#/tables时,可进行后端项目打包。为了方便打包,推荐在IDEA安装 maven Helper 插件,必须整体执行打包操作否则会无法正常运行。 [![piLzJJJ.png](https://s11.ax1x.com/2023/12/30/piLzJJJ.png)](https://imgse.com/i/piLzJJJ) 执行 maven package命令后,在 `code-generator-start`模块下的`target`目录中可找到打包后的jar包。可执行命令进行启动并使用。 ```shell java -jar code-generator-start-1.0-SNAPSHOT.jar ``` ​ 除了当做客户端工具使用外,还可以当做技术组件使用。前端处理方式与上述方案相同 ,在前端文件处理完成后。后端必须整体执行 maven install命令进行本地安装,否则会出现依赖丢失问题。 [![piLzYW9.png](https://s11.ax1x.com/2023/12/30/piLzYW9.png)](https://imgse.com/i/piLzYW9) 该工具是采用的是springBoot分模块开发技术开发的,启动模块和代码生成相关的核心模块在技术层面上是做了解耦合的,并且在 `code-generator-core`模块中添加了配置类和springFactories文件。所以在项目maven中只需要引入`code-generator-core`模块即可。 ```xml org.example code-generator-core 1.0-SNAPSHOT ``` 若项目引入了权限框架,会存在代码生成器无法正常使用的问题,需要根据实际情况进行单独处理。例如在springSecurity配置类中单独处理放行。 ```java // 允许访问并使用代码生成器 .antMatchers("/api/v1/load_table", "/api/v1/generator_download", "/api/v1/get_application_name","/dist/index.html", "/dist/static/css/**", "/favicon.ico", "/dist/static/js/**", "/dist/static/fonts/**").permitAll() ``` 最后需要配置代码生成相关属性 ```properties # =====================代码生成相关配置===================== # 逻辑删除字段名称 generator.table-delete-logic-flag=delete_flag # 创建时间字段名称 generator.table-insert-time-flag=create_time # 修改时间字段名称 generator.table-update-time-flag=update_time # 是否删除代码生成临时文件 # generator.delete=true generator.delete=false ``` `注意`当做技术组件使用的情况下则必须考虑项目结构,有没有采用分模块方式开发,是否删除代码生成临时文件配置为true的话可能会删除整个项目文件。建议先关闭删除,进行调试。如果需要修改,可修改该工具中指定删除目录生成代码并重新 install。 ```java com.example.codegenerator.domain.impl.GeneratorDomainApplicationImpl#removeFile ``` 当做技术组件使用时,代码生成器可以随着项目同时启动。项目启动成功后可直接访问地址 `http://项目地址:服务端口/dist/index.html#/tables` 方便开发时使用。