java 项目 seed_利用seed项目自动生成SpringBoot骨架代码

项目背景

该项目通过MyBatis Generator生成项目骨架代码,包括Entity,Mapper(Java & XML),Service/ServiceImpl,Controller几个元素。

配置好数据库连接,只要给定数据库中的表名,就可以生成以这个表基础的以上代码元素。需要注意的是,只有Entity和Mapper由MyBatis Generator生成,而Service和Controller由FreeMaker模板语言生成。

Entity和Mapper

利用MyBatis Generator可以很方便的生成Entity和Mapper。框架提供了两种方式生成代码。一种是xml方式的配置,需要通过在maven中安装plugin来run一个goal实现代码生成;另一种方式是使用代码,基本和xml配置相同。本项目即使用代码方式来生成新代码。

基本类

JdbcConnectionConfiguration类主要来配置Mysql的连接信息。

JavaModelGeneratorConfiguration类主要来配置Entity的属性,包括文件目录和包路径。还可以配置一个rootClass,用于扩展一个基础的类,例如AbstractEntity。

SqlMapGeneratorConfiguration类主要来配置Mapper类的属性,而对应的JavaClientGeneratorConfiguration用来配置xml文件的属性。

TableConfiguration类配置表本身的属性,例如表名。这里可以使用ColumnRenamingRule类对字段进行重命名(缺省是下划线转驼峰);还可以使用ColumnOverride类对字段进行重定义类型,例如将包装类型转换成基本类型,如果字段是not null的。

以上基本类定义好后,装载到Context中。最后使用MyBatisGenerator进行实际的生成工作。

Plugin插件

除了以上基本类,为了让输出更加符合我们的规范,可以使用Plugin插件进行重定义代码生成行为。

所有的插件都是一个继承自PluginAdapter的类,而这个类要放到PluginConfiguration类中,并通过该类的addProperty方法加入必要的参数。所有生成的PluginConfiguration类都需要放到Context中,但并没有顺序的区别。

主要有以下几种:

LombokPlugin类是一个自定义插件,在主类生成中,加入需要的import语句和注解。这里就增加了@Getter, @Setter, @ToString。由于Lombok的@Data注解内容太多,所以用以上三个注解替换。同时这个类也告诉生成器不需要生成getter和setter方法。

MapperPlugin类是tk提供的一个插件,用于给Entity增加JPA注解和Mapper增加基础继承类。

MapperAnnotationPlugin是MyBatis的官方插件(1.3.6以后),用于在Mapper类上增加@Mapper注解。

RenameMapperFilePlugin和RenameMapperClassPlugin是两个自定义插件,主要用于将EntityMapper转换为Mapper。这是因为在生成Entity时,给到TableConfiguration的modelName增加了一个Entity后缀。所以在Mapper,包括后面的Service和Controller中要再去掉这个后缀。这里注意要替换的字符串,是一个正则表达式,所以应该以$结尾,表示字符串在类名/文件名的最后。

Service和Controller

Service和Controller相对比较简单,只要使用FreeMaker的ftl后缀的模板,并将其中需要替换的变量,用一个Map作为参数调用Template.process方法即可。模板也可以进行随意修改,完全符合FreeMaker的语法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值