注解代码生成器-lombok的使用

一、概述

在编程上,Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。简而言之,一句话就是:通过简单的注解来精简代码达到消除冗长代码的目的。

那么它的适用场景是什么呢,当我们一个JavaBean中存在很多属性时,需求的表结构突然变了,有几个属性的类型改了,这时我们就需要重写get,set方法和构造方法,虽然也有快捷键可以生成,但是毕竟还是需要改好几处。所以这时我们如果使用了Lombok,只需要改一行即可,其他的都由注解在代码编译的时候动态生成。

二、使用(以eclipse为例)

我们首先创建Maven工程,导入pom坐标。

<dependencies>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.8</version>
		</dependency>
</dependencies>

然后创建JavaBean。

import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@SuppressWarnings("serial")
@NoArgsConstructor // 空参
@Data // get set方法
@ToString//toString方法
@Accessors(chain = true) // 链式风格访问
public class Dept implements Serializable {//记得实现序列化接口

	private Long deptno;// 主键
	private String dname;// 部门名称
	private String db_source;// 来自那个数据库,微服务架构一个服务对应一个数据库,同一个信息存储到不同数据库

	public Dept(String dname) {
		super();
		this.dname = dname;
	}

	public static void main(String[] args) {
		Dept dept = new Dept();
		dept.setDname("Java开发").setDeptno(1L).setDb_source("mysql");
		System.out.println(dept.toString());
	}

}

运行结果:

三、常用注解:

@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 使用方法同上,区别在于生成的是getter方法。
@ToString 注解在类,添加toString方法。
@EqualsAndHashCode 注解在类,生成hashCode和equals方法。
@NoArgsConstructor 注解在类,生成无参的构造方法。
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);

 

喜欢的朋友点个关注再走呗~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis-Plus 的代码生成器是一个非常方便的工具,可以帮助我们快速生成 MyBatis 相关的 DAO、Mapper、Entity、Service、Controller 等代码。具体使用方法如下: 1. 引入 MyBatis-Plus 的代码生成器依赖 在 Maven 中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 配置代码生成器 在项目的配置文件中,添加 MyBatis-Plus 的代码生成器配置项: ```yaml mybatis-plus: # 配置代码生成器 generator: # 配置数据库相关信息 database: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC username: root password: 管理员密码 # 配置全局策略 global-config: # 是否开启AR模式 active-record: true # 是否在mapper.xml中生成查询结果Map元素 enable-result-map: true # 是否在mapper.xml中生成基础列字段元素 enable-column-list: true # 自定义文件命名,注意 %s 会自动填充表实体属性 entity-name: %sDO # 配置包信息 package-info: # 父包名 parent: com.example.mybatisplus.generator # 实体类包名 entity: entity # mapper接口层包名 mapper: dao # service层包名 service: service # service实现类包名 service-impl: service.impl # controller包名 controller: controller ``` 3. 运行代码生成器 在项目中创建一个 `CodeGenerator` 类,编写如下代码: ```java public class CodeGenerator { public static void main(String[] args) { AutoGenerator generator = new AutoGenerator(); generator.setGlobalConfig(config()); generator.setDataSource(dataSourceConfig()); generator.setPackageInfo(packageConfig()); generator.setStrategy(strategyConfig()); generator.setTemplate(templateConfig()); generator.execute(); } private static GlobalConfig config() { GlobalConfig config = new GlobalConfig(); // 配置输出目录 config.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 是否覆盖已有文件 config.setFileOverride(true); // 是否开启 Swagger2 注解 config.setSwagger2(true); // 开启 AR 模式 config.setActiveRecord(true); // 配置基础表字段生成 config.setBaseColumnList(true); // 配置通用 Mapper 的 baseResultMap config.setBaseResultMap(true); // 配置是否生成 XML 的注释 config.setXmlName("%sMapper"); config.setAuthor("作者名"); config.setOpen(false); return config; } private static DataSourceConfig dataSourceConfig() { DataSourceConfig config = new DataSourceConfig(); config.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC"); config.setDriverName("com.mysql.jdbc.Driver"); config.setUsername("root"); config.setPassword("管理员密码"); return config; } private static PackageConfig packageConfig() { PackageConfig config = new PackageConfig(); config.setParent("com.example.mybatisplus.generator"); config.setEntity("entity"); config.setMapper("dao"); config.setService("service"); config.setServiceImpl("service.impl"); config.setController("controller"); return config; } private static StrategyConfig strategyConfig() { StrategyConfig config = new StrategyConfig(); // 配置表名的生成策略 config.setNaming(NamingStrategy.underline_to_camel); config.setColumnNaming(NamingStrategy.underline_to_camel); // 设置需要生成的表名 config.setInclude("user_info"); // 配置Lombok属性 config.setEntityLombokModel(true); config.setRestControllerStyle(true); // 配置是否生成注解@TableField config.setEntityTableFieldAnnotationEnable(true); // 配置通用 Mapper config.setEntityBooleanColumnRemoveIsPrefix(true); config.setRestControllerStyle(true); config.setEntitySerialVersionUID(true); config.setEntityBuilderModel(true); config.setEntityColumnConstant(true); return config; } private static TemplateConfig templateConfig() { TemplateConfig config = new TemplateConfig(); // 配置自定义模板,不配置就用默认的 return config; } } ``` 在 `main` 方法中设置好配置信息,并调用 `execute` 方法执行代码生成器即可。 4. 查看生成的代码 代码生成器会在程序运行的当前目录下生成生成的代码。在 IDEA 中可以通过 `Project` 窗口中的 `src/main/java` 目录打开生成代码目录,可以看到生成的 DAO、Mapper、Entity、Service、Controller 等代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stalin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值