SpringBootCodeGenerator 高级配置技巧:Lombok、Swagger、字段注释优化配置
SpringBootCodeGenerator 高级配置技巧:Lombok、Swagger、字段注释优化配置
SpringBootCodeGenerator(又名大狼狗代码生成器)是基于SpringBoot2+Freemarker的JAVA代码生成器,以释放双手为目的,支持mysql/oracle/pgsql三大数据库,用DDL-SQL语句生成JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL等相关代码。本文将介绍如何通过高级配置实现Lombok注解自动生成、Swagger文档增强以及字段注释优化,让生成的代码更加简洁专业。
一、Lombok配置:一键消除样板代码
Lombok通过注解自动化生成getter、setter、构造函数等样板代码,SpringBootCodeGenerator提供了便捷的Lombok配置选项,只需简单开关即可让生成的实体类自动集成Lombok注解。
1.1 开启Lombok支持
在代码生成页面中,找到"Lombok"开关并启用(如下图所示)。启用后,生成的实体类将自动添加@Data注解,该注解会自动生成所有字段的getter/setter方法、toString()、equals()和hashCode()方法。
图:SpringBootCodeGenerator界面中的Lombok开关配置项
1.2 Lombok注解自动集成
启用Lombok后,生成的实体类代码会自动包含Lombok注解,例如:
@Data
public class UserInfo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer userId;
private String username;
private Integer status;
private Date createTime;
}
项目中实体类如FieldInfo.java、ClassInfo.java等均已使用@Data注解,确保生成代码风格与项目保持一致。
二、Swagger配置:自动生成API文档
Swagger(OpenAPI)是RESTful API文档生成工具,SpringBootCodeGenerator可根据数据库字段类型自动生成Swagger注解,帮助开发者快速构建API文档。
2.1 Swagger类型映射配置
系统通过mysqlJavaTypeUtil.java类维护数据库类型与Swagger类型的映射关系,例如:
public static final HashMap<String, String> mysqlSwaggerTypeMap = new HashMap<>();
static {
mysqlSwaggerTypeMap.put("bigint", "integer");
mysqlSwaggerTypeMap.put("varchar", "string");
mysqlSwaggerTypeMap.put("datetime", "string");
// 更多类型映射...
}
这些映射关系确保生成的实体类字段能正确添加@ApiModelProperty注解,例如FieldInfo类中的swaggerClass属性会根据数据库类型自动设置。
2.2 模板配置与Swagger集成
在模板配置文件中,可通过选择"swagger-ui"模板(如下图所示)来生成包含Swagger注解的控制器代码,自动为API添加说明文档。
生成的控制器代码示例:
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理API")
public class UserController {
@ApiOperation("获取用户信息")
@GetMapping("/{id}")
public ResultVo<UserInfo> getUser(@ApiParam("用户ID") @PathVariable Integer id) {
// 业务逻辑...
}
}
三、字段注释优化:从数据库到代码的无缝传递
字段注释是代码可读性的关键,SpringBootCodeGenerator能将数据库表字段的COMMENT自动转换为Java代码注释,减少手动编写注释的工作量。
3.1 数据库注释提取
在解析SQL语句时,系统会自动提取字段的COMMENT信息,例如以下SQL:
CREATE TABLE `user_info` (
`user_id` INT AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`status` TINYINT DEFAULT 1 COMMENT '状态(1:正常,0:禁用)',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
生成的实体类会自动包含注释:
/**
* 用户ID
*/
private Integer userId;
/**
* 用户名
*/
private String username;
/**
* 状态(1:正常,0:禁用)
*/
private Integer status;
3.2 注释格式优化配置
通过调整模板文件(如entity.ftl)可自定义注释格式,例如添加@Description注解或调整注释缩进。模板文件位于项目的模板目录中,可根据需求进行个性化修改。
四、高级配置实践:综合优化示例
4.1 完整配置流程
- 准备SQL:编写包含详细COMMENT的DDL语句
- 配置生成选项:
- 启用Lombok开关
- 选择包含Swagger注解的模板
- 设置包名、作者等基础信息
- 生成代码:点击"生成"按钮,获取优化后的代码
4.2 效果对比
未优化前的实体类可能包含大量getter/setter方法,缺少API文档注解;优化后代码更加简洁,自动集成Lombok和Swagger,字段注释完整,极大提升开发效率。
五、总结
通过SpringBootCodeGenerator的Lombok、Swagger和字段注释优化配置,开发者可以显著减少重复劳动,生成更加规范、易维护的代码。这些高级配置选项体现了工具"释放双手"的设计理念,帮助团队专注于业务逻辑开发而非样板代码编写。
如需进一步定制配置,可参考项目中的模板文件和配置类,根据团队需求进行个性化调整。开始使用这些高级配置,让代码生成效率提升一个台阶吧! 🚀
更多推荐




所有评论(0)