Generator 代碼生成
代碼生成内容
spring-boot-plus在mybatis-plus基礎上,新增param/vo等模闆
拓展controller/service/mapper/xml方法
Purpose
資料庫建立表,即可生成背景CRUD/分頁基礎代碼,還有swagger!
官網位址: springboot.plus
GITHUB: https://github.com/geekidea/spring-boot-plus
GITEE: https://gitee.com/geekidea/spring-boot-plus
_ _ _ _
(_) | | | | | |
___ _ __ _ __ _ _ __ __ _ ______| |__ ___ ___ | |_ ______ _ __ | |_ _ ___
/ __| '_ \| '__| | '_ \ / _` |______| '_ \ / _ \ / _ \| __|______| '_ \| | | | / __|
\__ \ |_) | | | | | | | (_| | | |_) | (_) | (_) | |_ | |_) | | |_| \__ \
|___/ .__/|_| |_|_| |_|\__, | |_.__/ \___/ \___/ \__| | .__/|_|\__,_|___/
| | __/ | | |
|_| |___/ |_|
:: Spring Boot :: (v2.1.6.RELEASE)
:: Spring Boot Plus :: (v1.0.0.RELEASE)
代碼生成步驟
- 建立資料庫表,例如:sys_log
注意:記得加上表注釋,字段列注釋,友善生成類注釋、swagger注釋
-- ----------------------------
-- Table structure for sys_log
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
`log_id` bigint(18) NOT NULL COMMENT '主鍵',
`type` tinyint(1) NULL DEFAULT NULL COMMENT '類型',
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容',
`create_id` bigint(18) NULL DEFAULT NULL COMMENT '建立人ID',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
PRIMARY KEY (`log_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系統日志' ROW_FORMAT = Dynamic;
- 代碼生成配置
spring-boot-plus/src/test/java/io/geekidea/springbootplus/test/CodeGenerator.java

2.1 修改資料庫連接配接配置
private static final String USER_NAME = "root";
private static final String PASSWORD = "rootroot";
private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
private static final String DRIVER_URL = "jdbc:mysql://localhost:3306/spring_boot_plus?useUnicode=true&characterEncoding=UTF-8&useSSL=false";
2.2 修改子產品、表、作者等配置
// ############################ 配置部分 start ############################
// 子產品名稱
private static final String MODULE_NAME = "system";
// 作者
private static final String AUTHOR = "geekidea";
// 生成的表名稱
private static final String TABLE_NAME = "sys_log";
// 主鍵資料庫列名稱
private static final String PK_ID_COLUMN_NAME = "id";
// ############################ 配置部分 end ############################
- MODULE_NAME 子產品名稱,在目前項目上以單獨的檔案夾形式展現
- AUTHOR 作者名稱,在類的注釋上展現
- TABLE_NAME 表名稱,目前需要生成的表名稱,關聯實體類等
- PK_ID_COLUMN_NAME 主鍵列名稱,預設是id,如果是其它名稱,可在這裡配置
- 運作CodeGenerator.java
3.1 控制台輸出生成日志
11:33:43.442 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================準備生成檔案...==========================
11:33:44.167 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 建立目錄: [E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\entity]
11:33:44.169 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 建立目錄: [E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\web\controller]
11:33:44.170 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 建立目錄: [E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\service]
11:33:44.170 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 建立目錄: [E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\mapper]
11:33:44.171 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 建立目錄: [E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\service\impl]
...
11:33:44.294 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/mapper.xml.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.308 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/mapper.xml.vm; 檔案:E:\github\spring-boot-plus/src/main/resources/mapper/system/SysLogMapper.xml
11:33:44.313 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/queryParam.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.314 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/queryParam.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java/io/geekidea/springbootplus/system/web/param/SysLogQueryParam.java
11:33:44.332 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/queryVo.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.337 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/queryVo.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java/io/geekidea/springbootplus/system/web/vo/SysLogQueryVo.java
11:33:44.347 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/entity.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.357 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/entity.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\entity\SysLog.java
11:33:44.359 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/mapper.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.360 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/mapper.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\mapper\SysLogMapper.java
11:33:44.362 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/service.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.364 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/service.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\service\SysLogService.java
11:33:44.367 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/serviceImpl.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.369 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/serviceImpl.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\service\impl\SysLogServiceImpl.java
11:33:44.373 [main] DEBUG org.apache.velocity - ResourceManager : found /templates/controller.java.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
11:33:44.376 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模闆:/templates/controller.java.vm; 檔案:E:\github\spring-boot-plus/src/main/java\io\geekidea\springbootplus\system\web\controller\SysLogController.java
11:33:44.376 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================檔案生成完成!!!==========================
Process finished with exit code 0
3.2 生成的子產品和包結構
├─system 子產品包
│ ├─entity 實體類包
│ ├─mapper mybatis mapper接口包
│ ├─service 服務接口包
│ │ └─impl 服務實作包
│ └─web 提供前端結果相關包
│ ├─controller 控制器包
│ ├─param 參數包
│ └─vo 值對象,響應結果包
3.3 生成的包及相關的類
├─system
│ ├─entity
│ │ SysLog.java 實體類,已生成swagger注釋
│ ├─mapper
│ │ SysLogMapper.java mapper接口
│ ├─service
│ │ │ SysLogService.java 服務接口,已繼承公共service
│ │ └─impl
│ │ SysLogServiceImpl.java 服務實作類,已繼承公共service impl
│ └─web
│ ├─controller
│ │ SysLogController.java 控制器類,已生成CRUD,分頁controller方法,已生成swagger文檔
│ ├─param
│ │ SysLogQueryParam.java 請求參數類,用于條件分頁查詢等
│ └─vo
│ SysLogQueryVo.java 響應結果類,用于自定義查詢響應結果等
3.4 啟動項目
SpringBootPlusApplication.java
2019-07-27 12:11:45.298 INFO 21856 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8888 (http) with context path ''
2019-07-27 12:11:45.301 INFO 21856 --- [ main] i.g.s.SpringBootPlusApplication : Started SpringBootPlusApplication in 9.66 seconds (JVM running for 10.988)
2019-07-27 12:11:45.304 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : projectFinalName : spring-boot-plus
2019-07-27 12:11:45.305 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : projectVersion : 1.0.0.RELEASE
2019-07-27 12:11:45.305 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : profileActive : local
2019-07-27 12:11:45.305 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : contextPath : /
2019-07-27 12:11:45.305 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : port : 8888
2019-07-27 12:11:45.308 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : home:http://192.168.1.168:8888/
2019-07-27 12:11:45.308 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : docs:http://192.168.1.168:8888/docs
2019-07-27 12:11:45.308 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo : spring-boot-plus project start success...........
2019-07-27 12:11:45.309 INFO 21856 --- [ main] i.g.s.util.PrintApplicationInfo :
____ __ __ ____
/\ _`\ /\ \__ /\ \__ /\ _`\
\ \,\L\_\ \ ,_\ __ _ __\ \ ,_\ \ \,\L\_\ __ __ ___ ___ __ ____ ____
\/_\__ \\ \ \/ /'__`\ /\`'__\ \ \/ \/_\__ \ /\ \/\ \ /'___\ /'___\ /'__`\ /',__\ /',__\
/\ \L\ \ \ \_/\ \L\.\_\ \ \/ \ \ \_ /\ \L\ \ \ \_\ \/\ \__//\ \__//\ __//\__, `\/\__, `\
\ `\____\ \__\ \__/.\_\\ \_\ \ \__\ \ `\____\ \____/\ \____\ \____\ \____\/\____/\/\____/
\/_____/\/__/\/__/\/_/ \/_/ \/__/ \/_____/\/___/ \/____/\/____/\/____/\/___/ \/___/
3.5 通路項目
- 自動生成swagger CRUD、分頁接口文檔
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成
- add 添加接口swagger
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成 - delete 删除接口swagger
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成 - getPageList 分頁接口swagger
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成 - info 詳情接口swagger
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成 - update 修改接口swagger
spring-boot-plus背景快速開發腳手架之代碼生成器使用Generator 代碼生成