因为本文章主要围绕着项目开发进行,所以前言不做开头,直接上内容。
添加字段
我们的渠道表,我看到若依脚手架当中有一个是否删除的标志字段,所以我这里也添加一下:
ALTER TABLE `tienchin_channel` ADD COLUMN `del_flag` char(1) NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)' AFTER `update_time`;
新建模块
配置模块信息:
信息自己照着上方进行输入即可,具体的每一个选项,做这种项目不做过多介绍,因为并不是什么新的技术点,点击 Create。
channel 模块需要依赖一下 tienchin-common。
渠道管理最终的 pom.xml 内容:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>top.it6666</groupId> <artifactId>tienchin</artifactId> <version>3.8.5</version> </parent> <artifactId>tienchin-channel</artifactId> <description> 渠道管理模块 </description> <dependencies> <!-- 通用工具 --> <dependency> <groupId>top.it6666</groupId> <artifactId>tienchin-common</artifactId> </dependency> </dependencies> </project>
定义版本号
父工程当中定义渠道管理模块版本号:
<!-- 渠道管理 --> <dependency> <groupId>top.it6666</groupId> <artifactId>tienchin-channel</artifactId> <version>${tienchin.version}</version> </dependency>
注意点:
- 渠道管理模块 version 的版本号要与当前父工程 pom.xml 内容中
tienchin.version
一致否则会报错
tienchin-admin 依赖 tienchin-channel:
<!-- 渠道管理 --> <dependency> <groupId>top.it6666</groupId> <artifactId>tienchin-channel</artifactId> </dependency>
业务代码都写在 tienchin-channel 模块当中,admin 是 web 接口的入口,所以依赖调用一下我们写的业务类代码即可。
加入单元测试
在 tienchin-admin 加入依赖:
<!-- 单元测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
更改 spring-boot 版本号为 2.5.13,并且将原先的版本号写在 dependencies 改造成定义在 properties 当中:
<spring-boot.version>2.5.13</spring-boot.version>
加入 MyBatisPlus 代码生成器
在父工程模块当中管理 MyBatisPlus 版本号:
<mybatis-plus-generator.version>3.5.3</mybatis-plus-generator.version>
<!-- MyBatisPlus 代码生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus-generator.version}</version> </dependency>
引入依赖:
<!-- MyBatisPlus 代码生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> </dependency> <!-- FreeMarker 是一个用 Java 编写的模板引擎。它不是用于生成 HTML 的 web 框架,而是一个用于生成文本输出的模板引擎。但在 web 开发中,它常常被用于生成 HTML。以下是 FreeMarker 的一些关键特点和用途: 1. **文本生成**:FreeMarker 主要是用来基于模板生成文本输出的。这可以是 HTML、XML、邮件正文,或者其他任何的文本格式。 2. **数据驱动**:你可以在模板中使用预定义的数据模型。当模板被处理时,FreeMarker 将这些数据与模板结合起来生成输出。 3. **灵活性**:FreeMarker 提供了丰富的内置函数和指令,允许开发者执行循环、条件判断和其他逻辑操作。 4. **与 web 框架集成**:虽然 FreeMarker 本身不是一个 web 框架,但它经常与 Java web 框架(如 Spring MVC)集成,作为视图技术来生成 HTML 页面。 5. **与 Java 集成**:FreeMarker 可以与 Java 对象轻松集成,这意味着你可以在模板中直接访问和使用 Java 对象的属性和方法。 6. **无依赖**:FreeMarker 不依赖于任何特定的 web 或应用服务器,因此可以在任何 Java 环境中使用。 7. **安全性**:FreeMarker 被设计为在安全受限的环境中运行,例如在服务器端为不受信任的用户生成内容。 总的来说,FreeMarker 是一个强大而灵活的模板引擎,适用于从简单的文本生成到复杂的 web 页面渲染等各种场景。 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
本人在 MyBatisPlus 官网 copy 了一份代码,发现有问题,然后,我改造了一下,出现问题的代码效果如下图:
改造之后的代码,也是最终的代码,url, username, password 需要换成你们自己的:
/** * @author BNTang * @version 1.0 * @description MyBatisPlus CRUD 代码生成器 * @since 2023-17-20 **/ @SpringBootTest public class GenerateCode { @Test void generateChannel() { String path = "E:\\Desktop\\TienChin\\tienchin\\tienchin-channel\\src\\main"; FastAutoGenerator.create( "url", "username", "password" ) .globalConfig(builder -> builder // 设置作者 .author("BNTang") // 覆盖已生成文件 .fileOverride() // 指定输出目录 .outputDir(path + "\\java")) .packageConfig(builder -> builder // 设置父包名 .parent("top.it6666") // 设置父包模块名 .moduleName("channel") // 设置mapperXml生成路径 .pathInfo(Collections.singletonMap(OutputFile.xml, path + "\\resources\\mapper"))) .strategyConfig(builder -> builder // 设置需要生成的表名 .addInclude("tienchin_channel") // 设置过滤表前缀 .addTablePrefix("tienchin_")) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .templateEngine(new FreemarkerTemplateEngine()) .execute(); } }
运行
点击单元测试的 run 按钮,就可以生成对应的模块文件夹如下图:
最后将 controller 移动到 tienchin-admin 模块当中的 top.it6666.web.controller.tienchin
下,本章节到此结束,主要就是新建了一下我们的渠道管理模块,下一节将进行业务代码的开发。