SingleBoot教程(二):代码生成器使用
本文介绍代码生成器的使用方法
代码生成器的基本原理是,开发人员根据业务编写实体类(Entity),然后执行代码生成逻辑,系统将解析实体类字段,并由此生成Dao、Service接口、Service实现类、Controller控制器、增删改查前端代码、前端路由及接口配置、实体类建表sql和相关菜单、功能、API的sql记录。
比如开发人员现在需要做一个客户管理功能,客户信息里包含姓名、年龄、两个字段。那么我们就需要写一个符合规范的实体类,该类放于com.spz.demo.singleboot.entity包下
当实体类较多时,开发人员可能需要对众多实体类进行分类,比如系统有关的实体类均放到com.spz.demo.singleboot.entity.system包下;测试有关的放在com.spz.demo.singleboot.entity.test包下;也有部分实体类直接放com.spz.demo.singleboot.entity目录下,不需要按目录隔开存。代码生成器遇到非entity包下的实体类时,将会在生成目标代码文件时也进行包分隔。例如Book实体类,存放于com.spz.demo.singleboot.entity.file包下,则生成的控制器类则会放在com.spz.demo.singleboot.controller.file包下,并且该类的RequestMapping根路径为"/file"
现在以客户实体类(Customer.java)和书本实体类(Book.java)为例演示代码生成器的使用方法
代码生成器相关配置在application.properties文件中配置,该配置文件运行于local环境。建议只配置generate.project.rootPath和generate.out.path这两项,其他的建议不要修改
#代码生成器配置#【需要配置】项目根路径(绝对路径),简单地说就是项目拉下来是一个目录,这里配置的就是拉下来目录的绝对路径generate.project.rootPath=C:/Users/spz/WORK/ME_PRO/single-java-demo#【需要配置】前端代码、sql语句文件输出路径(绝对路径)generate.out.path=C:/Users/spz/WORK/ME_PRO/single-java-demo/generate/#作者generate.doc.author=spzmmd#注释时间generate.doc.date=2021/02/01#项目根包路径(建议不要修改)generate.project.package=com.spz.demo.singleboot#实体类存放包路径(建议不要修改)generate.scan.package=entity#实体类Bean代码生成存放包相对路径generate.out.package.bean=bean#控制器代码生成存放包相对路径generate.out.package.controller=controller#mapper接口代码生成存放包相对路径generate.out.package.dao=dao#Service接口代码生成存放包相对路径generate.out.package.service=service#Service实现类代码生成存放包相对路径generate.out.package.serviceimpl=serviceimpl编写实体类EntityCustomer.java客户实体类,存放于entity根包下(com.spz.demo.singleboot.entity)packagecom.spz.demo.singleboot.entity;importcom.baomidou.mybatisplus.annotation.TableName;importcom.spz.demo.singleboot.core.annotation.EntityDoc;importcom.spz.demo.singleboot.core.entity.BasicEntity;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;/***顾客实体类*用于代码生成器测试*@authorspzmmd*@date2019/05/15*/@EntityDoc(isClass=true,note="顾客")@Data@NoArgsConstructor@AllArgsConstructor@TableName("biz_customer")publicclassCustomerextendsBasicEntity{/***姓名*/@EntityDoc(note="姓名")privateStringname;/***年龄*/@EntityDoc(note="年龄")privateIntegerage;}Book.java书本实体类,存放于entity包下的file包下(com.spz.demo.singleboot.entity.file)packagecom.spz.demo.singleboot.entity.file;importcom.baomidou.mybatisplus.annotation.TableName;importcom.spz.demo.singleboot.core.annotation.EntityDoc;importcom.spz.demo.singleboot.core.entity.BasicEntity;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;/***书籍实体类*用于代码生成器测试*@authorspzmmd*@date2019/05/15*/@EntityDoc(isClass=true,note="书籍")@Data@NoArgsConstructor@AllArgsConstructor@TableName("biz_book")publicclassBookextendsBasicEntity{/***名称*/@EntityDoc(note="名称")privateStringname;/***作者*/@EntityDoc(note="作者")privateStringauthor;}客户类和书籍类在包中的位置如图
编写实体类时必须遵守下列规范
实体类上必须声明如下注解//代码生成器需要从此注解的note字段得知该类名称注释,注意该字段在类上声明时,需要注明isClass为true@EntityDoc(isClass=true,note="顾客")//Lombok注解,用于自动生成get、set方法及相关构造器@Data@NoArgsConstructor@AllArgsConstructor//Mybatis注解,用于声明实体类对应的数据库表名称//【!】数据库表名不要使用sys_前缀,这是系统自带数据表的前缀,在生成sql时系统会自动跳过表面带有该前缀的实体类@TableName("biz_customer")实体类必须继承com.spz.demo.singleboot.core.entity.BasicEntity类BasicEntity类包含了主键字段(code)、数据有效字段、记录创建时间字段、记录修改时间字段,开发人员建立新实体类时无需再声明。BasicEntity类字段如下图:(关于系统自动设置创建时间、修改时间和数据有效字段的逻辑请看此类:com.spz.demo.singleboot.core.config.MybatisPlusMetaObjectHandler)
实体类字段上必须声明*@EntityDoc(note=“xxx”)*注解,并设置其note为字段注释名称代码生成器需要读取EntityDoc注解里的note字段来获得字段的注释名称,用于前端输入框显示等场景
实体类里基本类型的字段,必须使用包装类型,如int,请换成Integer
实体类存放示例
生成代码代码生成器执行示例在com.spz.demo.singleboot.CodeGenerateTest下,可直接运行。如下图:
实体类编写完成后,即可运行代码生成器生成代码(生成过程中会输出日志供查看生成情况);代码生成后,在相关目录下可看见生成的代码:
Bean类Bean类用于控制层展示/参数传递,Service层将数据查询出来以后,需要赋值给对应Bean类返回给Controller层。此外,Bean类除了包含实体类字段,还包含了BasicEntity里的所有字段(code、valid等);并包含了唯一标识集合字段,用于类似"根据id集合查询/删除的业务场景"
Controller类每个实体类对应一个控制器类,生成的控制器接口包含如下方法:
Dao类实际为Mybatis-Plus的Mapper接口类
Service接口及其实现类内部封装了一套增删改查接口下图为Service实现类里包含的方法,注意createWrapper()方法,建议整个Service实现类里,所有涉及查询的方法均调用createWrapper()方法返回的LambdaQueryWrapper对象来参与查询,而所有查询条件均在createWrapper()方法里编写(注:LambdaQueryWrapper为Mybatis-plus提供的Lambda方式查询)
前端页面、前端配置及SQL建表语句
实体类sql建表使用generate/sql目录下的tableSqlList.sql文件进行建表(注意前提是使用doc/sql目录下的sql文件初始化过了数据库)
配置前端使用开发工具(如WebStorm)打开前端项目single-demo-admin,如果没有可去此处下载single-demo-admin,打开后目录如下:
事先进行代码生成操作后,后台项目根目录下的generate目录将生成html和htmlConfig目录,如下图:
拷贝前端代码,将"后台项目根目录/generate/html/"下的所有文件均拷贝至"前端项目根目录/src/views/"目录下,该目录存放前端页面代码
打开"前端项目根目录/src/config/api.js"以及"后端项目根目录/generate/htmlConfig/htmlConfig.js",将api相关的配置复制到api.js
打开"前端项目根目录/src/config/router.js"以及"后端项目根目录/generate/htmlConfig/htmlConfig.js",将路由相关的配置复制到router.js
运行项目并配置菜单运行项目后,还需要对当前角色配置有权限的菜单和功能,才能使用到代码生成器生成的顾客管理和书籍管理功能
分别启动前端和后端项目运行(运行方法请查看之前的文章),访问页面(http://localhost:8080)并输入账号密码验证码登录(账号zhangsan,密码:123):
配置角色菜单映射选择书籍管理、顾客管理,然后确定
配置角色功能映射选择相应的功能,然后确定
配置完后,重新登录系统这里菜单icon是默认的,需要更改则去"系统设置-菜单管理"里修改,同时该处也可以修改菜单的排序,代码生成器默认给新菜单都设置为900顺序
基本的增删改查均具备
列表页面新增查询字段注意生成的页面里是没有具体字段的查询的,需要开发人员自行添加,比如需要给书籍管理页面添加按书籍名称查询的字段,则打开"前端项目根目录/src/views/book/List.vue",在下图红框出编写字段:在后端项目里,也需要增加查询条件,如图:
结语本项目有关的技术教程文章,我将在下面的公众号中分享,欢迎关注!PS:小到Java后端技术、计算机基础知识,大到微服务、ServiceMesh、大数据等,都是本人研究的方向。我将定期在公众号中分享技术干货,希望以我一己之力,抛砖引玉,帮助朋友们提升技术能力,共同进步!
开启Edge浏览器的网页二维码生成功能的方法
之前小编给大家介绍过一篇开启Chrome浏览器的网页二维码生成功能的方法,让大家可以快速的将电脑浏览器网页分享到移动端,省去了装草料二维码、二维码(QR码)生成器(QRCodeGenerator)、Chrome二维码解码与生成器插件:BarDeCo等插件的内存,今天小编又为大家带来了一款可以快速的将电脑浏览器网页分享到移动端的浏览器,它就是Edge浏览器,下面小编就为大家介绍一下它的开启和使用方法。
开启Edge浏览器的网页二维码生成功能的方法1、在地址栏输入:edge://flags/#sharing-qr-code-generator2、将EnablesharingpageviaQRCode的选项切换为【Enabled】,然后重启浏览器,如图:
Edge浏览器的网页二维码生成功能使用方法1、开启该功能后,打开任意页面,再点击地址栏,就会看到右侧出现二维码标志了。点击这个小标志,就能生成当前页面的二维码。
2、我们会发现在Edge浏览器生成的二维码有竞争对手Chrome的经典“小恐龙”,可能是Edge开发人员还没来得及改过来。
小结你也可以使用此方法开启其他Chromium内核浏览器的网页二维码生成功能,但是可能导致出现二维码无法显示的页面,因为二维码生成功能仅在Chromium内核85版本中才可正常使用,所以需要保证你的浏览器内核也至少在这个版本。
查看更多二维码生成器下载
二维码生成器官方版是一款使用轻松的二维码生成工具。二维码生成器电脑版可以把任意文本生成对应的二维码,而且操作起来十分的便捷。二维码生成器还可以帮助用户把你的手机号码邮箱等资料生成二维码名片,用手机扫描(如:微信扫一扫)即可自动加入通讯录。相似软件版本说明软件地址冰点还原精灵绿色版查看会声会影x7绿色版查看石大师装机大师绿色版查看Overture5绿色版查看二维码生成器软件简介二维码制作的软件不少,但是《二维码生成器v2.0》绝对算是目前为止最好用的二维码软件,这不仅是因为它功能比较强大,基本上二维码的相关功能它都具备。二维码生成器v2.0是一款非常值得拥有的二维码制作软件,它可以自已制作二维码名片并可以添加网址信息、快速拨号信息、短信信息、wifi信息及美化二维码,所有的二维码功能只需这一个软件即可。
有时我们需要生成二维码以供手机手扫描,如网站地址,LOGO图等等,用这个就可以满足您的要求。
二维码生成器功能特色1.把任意文本生成对应的二维码
2.把你的手机号码邮箱等资料生成二维码名片,用手机扫描(如:微信扫一扫)即可自动加入通讯录
3.把任意网址(新浪微博,qq空间,淘宝店铺等)生成二维码,方便您线下推广营销
4.把你的手机号码,电子邮箱生成二维码
5.把无线账号和密码生成二维码,直接手机扫描即可加入wifi(仅限安卓系统)
6.把手机号码,短信生成二维码直接自动拨号和发短信
7.可以对本地二维码,网络上二维码进行解码,获取更多类型二维码信息
8.可以对二维码进行美化满足更多自定义化操作
二维码生成器使用方法1、打开软件,在图示位置输入文本信息
2、点击保存
3、设置保存位置、名称,点击保存
4、保存成功
二维码生成器常见问题二维码生成器官方版如何解码二维码?
解码二维码只需要导入二维码文件,点击解码即可
同类软件对比小智二维码生成器是目前最好用的二维码软件之一,这不仅是因为它批量生成二维码功能强大,且配置简单,亦同时支持,即配置即预览,小智二维码生成器是一款值得拥有的二维码制作软件。它可以自已制作二维码名片、添加网址信息、拨号信息、短信信息、wifi信息等二维码功能,也可以快速生成批量二维码图片,提高工作效率!
恒泰二维码批量生成识别器是一款可以识别二维码及可以批量生成二维码的二维码生成软件。操作简单方便,功能强大。欢迎使用。由恒泰软件科技有限公司编写。
二维码生成器更新日志日日夜夜的劳作只为你可以更快乐
嘛咪嘛咪哄~bug通通不见了!
特别说明: 您好,您即将使用的软件为辅助类工具,可能会被各大杀毒软件进行拦截和查杀,该软件可能存在使用风险,请注意规避,如果您想继续使用建议关闭各种杀毒软件后使用。 附软件包解压密码:www.onlinedown.net
华军小编推荐:
二维码生成器官方版允许把手机号码,短信生成二维码直接自动拨号和发短信。此外,批量打印二维码标签也是不错的软件,欢迎点击下载体验!
草料音视频二维码生成器,帮你把音频或视频生成二维码,扫描即可在线播放
上传音视频免费版限5人播放试用,仅保留30天;付费版播放人数不限,长期有效;禁止上传、存储并分享未经授权的影视和音频作品。常见问题
请先点此上传音视频高级编辑
0%上传中,请稍候...
高级编辑
转码失败,请重新上传转码失败,请前往高级编辑器重新上传查看权限:密码:密码提示:视频封面:删除封面上传封面
生码后,还可设置二维码有效期、打开方式等