幼敏悟过人,读书辄成诵。这篇文章主要讲述基于SSM源代码风格Java代码生成器 Maven版开箱即用 摸鱼神器相关的知识,希望能为你提供帮助。
一、序言
UCode Cms
是一款Maven版的java源代码生成器,是快速构建项目的利器。代码生成器模块属于可拆卸模块,即按需引入。代码生成器生成SSM(Spring、SpringBoot、MybatisPlus)风格的源代码。
面试时经常提到面向对象编程,实际开发中常常是面向数据库编程,随着需求的快速变化,数据库的库表结构也需要相应变化,如何根据库表结构的变化,快速响应到源代码层次,是Java代码生成器主要的关切点。
功能亮点实时读取库表结构元数据信息,比如表名、字段名、字段类型、注释等,选中修改后的表,点击一键生成
,代码成即可提现出表结构的变化。
单表快速转化restful风格的API接口并对外暴露服务。对于百余张表的数据库,使用代码生成器让开发事半功倍。
多表连接查询。多表连接查询默认不开启,需要在全局文件中手动配置。开启后代码生成器会自动读取数据库元数据信息中的主外键关系,分别生成一对一
、一对多
、多对多
风格的源代码。
生成的代码接口可通过Swagger暴露。
二、运行依赖服务
代码生成器运行依赖mysql数据库、Redis服务,版本不限。
Mysql数据库Mysql数据库中库表结构分为两部分,一是系统运行必要的系统表(跟代码生成业务无关),二是用户自定义的库表,代码生成将会读取。
Redis服务Redis服务跟代码生成业务无关,系统中其它业务用到Redis,因此也依赖Redis服务。
三、快速入门使用
使用demo脚手架cms demo项目,可直接跳转到步骤三。脚手架是标准的Spring Web工程,内置少量配置信息,用户替换后可快速上手。
1、前提条件引入如下依赖是使用代码生成器功能的前提条件,其中代码生成器模块
在代码生成完毕后,建议移出。
<
!--ucode-cms核心依赖-->
<
dependency>
<
groupId>
xin.altitude.cms<
/groupId>
<
artifactId>
ucode-cms-spring-boot-starter<
/artifactId>
<
version>
1.3.3<
/version>
<
/dependency>
<
!--代码生成器模块(非必选)-->
<
dependency>
<
groupId>
xin.altitude.cms.code<
/groupId>
<
artifactId>
ucode-cms-code-spring-boot-starter<
/artifactId>
<
version>
1.3.3<
/version>
<
/dependency>
2、全局配置环境变量必须绑定为开发环境,代码生成器仅在开发模式下生效。打包时即使不移除相关Maven依赖,运行时在非开发环境时,相应代码不加载。建议在打包时移除。
spring:
profiles:
active: dev
3、数据库文件数据库脚本有两类:核心SQL和用户自定义表结构。
sql/
├── cms(必选).sql// 核心脚本(必选)
导入系统表后,用户需自定义业务表,方可体验代码生成的功能。
4、连接数据库如果已经配置完数据库连接,则可忽略此步骤
spring:
datasource:
# 主库数据源
url: jdbc:mysql://localhost:3306/ucode-cms?useUnicode=true&
characterEncoding=utf8&
zeroDateTimeBehavior=convertToNull&
useSSL=true&
serverTimezone=GMT%2B8
username: root
password: 123456
5、可视化界面访问可视化界面操作需要生成代码的表
文章图片
6、重启项目勾选表结构,点击生成,重启项目,相应的代码生效。访问地址
http://localhost:8080/doc.html
访问接口列表。文章图片
四、高级使用
在完成简单入门体验后,需要了解代码生成的高级部分,即全局配置。在项目中搜索类名
CodeProperties
即可查看所有内置可供修改的参数,在全局yml
文件中覆盖默认值即可完成修改,按需配置。单表处理当全局配置
ucode.code.joinQuery = false
或者使用默认配置时,则仅处理单表结构。将表名、字段名、字段类型、备注信息转化为SSM风格的源代码。多表连接当在全局配置
ucode.code.joinQuery = true
时,则手动开启主外键查询,系统会自动读取表的主外键关系,并将其转化为连接查询的源代码。主要参数
参数 | 默认值 | 使用备注 |
---|---|---|
ucode.code.projectDir |
空 | 用户自定义多模块项目需要指定项目名 |
ucode.code.removeTablePrefix |
false |
根据需要是否在生成代码时移除表前缀 |
ucode.code.packageName |
xin.altitude.front |
配置用户自己的包名 |
ucode.code.useLombok |
true |
默认使用Lombok |
ucode.code.filterSysTable |
true |
默认过滤不显示系统表 |
ucode.code.joinQuery |
false |
是否使用连接查询(默认单表查询) |
ucode.code.xml.addXml |
false |
虽然说不建议使用XML文件编写SQL,但仍提高可开启开关 |
ucode.code.mapper.useCache |
true |
默认开启二级缓存,自定义业务缓存可关闭 |
代码生成器开源项目源码地址
文章图片
【基于SSM源代码风格Java代码生成器 Maven版开箱即用 摸鱼神器】原文地址
推荐阅读
- UML类图 #yyds干货盘点#
- #yyds干货盘点# C#中类的异常处理
- # yyds干货盘点 # 拼刀刀店铺后台的参数anti-content逆向分析
- #yyds干货盘点#跨域问题之Spring的跨域的方案
- #yyds干货盘点#Spring 源码阅读Spring IoCAOP 原理小总结
- Flutter 专题66 图解基本约束 Box#yyds干货盘点#
- Redis哨兵集群主库故障数据恢复思路 #yyds干货盘点#
- Flutter 专题65 图解基本 TextField 文本输入框#yyds干货盘点#
- 容器管理工具docker和容器的规范与依赖