springboot集成lombok代码简化
目录
1介绍
2springboot初体验
3springboot集成jsp
4springboot属性注入
5springboot集成mybatis
6springboot集成lombok
7springboot集成logback日志
8springboot开启全局热部署
9springboot面向切面编程
10springboot文件上传
11springboot文件下载
12springboot自定义拦截器
13springboot打成war包发布
14springboot打成jar包发布
15springboot自定义banner
16springboot配置文件拆分
lombok能做什么
- 自动生成实体Bean中大量的Getter/Setter方法
- 自动生成构造器、toString、hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法
- 在运行过程中自动生成的,代码里面就不包含get、set等方法,将极大减少代码总量
::: warning 注意
注意,其是在运行过程中,帮你自动生成的。就是说,将极大减少你的代码总量。
:::
idea安装lombok插件
在idea的settings下找到plugins菜单,点击Browse repositories
然后搜索lombok,点击右侧下载,下载完成重启即可(我的idea已经安装过了,所以显示的是update)
添加lombok依赖
在pom里面添加lombok依赖
<!--代码简化工具-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
::: tip 注意
这里无需指定版本,因为Spring Boot中已经默认引入了这个类库,且指定了其scope,当然,你手动指定版本也是没问题的。
:::
lombok常用注解及原理
- @Data:注解在类上,包含了@ToString,@EqualsAndHashCode,@Getter / @Setter和@RequiredArgsConstructor的功能,提供类所有属性的 getter 和 setter 方法,
此外还提供了equals、canEqual、hashCode、toString 方法。这个是最常用的注解,与dao对应的实体类上加这个很方便,代码也很简洁。 - @Slf4j :注解在类上,根据用户实际使用的日志框架生成log日志对象。springboot默认集成了logback日志,加上这个注解就可以在类里面使用log对象打印日志了。
- @Setter:注解在属性上,为一个属性提供 setter 方法
- @Getter:注解在属性上,为一个属性提供 getter 方法
- @ToString:注解在类上,生成toString()方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。可以这样设置不包含哪些
字段@ToString(exclude = “id”) / @ToString(exclude = {“id”,“name”})如果继承的有父类的话,可以设置callSuper 让其调用父类的toString()方法,例如:@ToString(callSuper = true) - @EqualsAndHashCode:注解在类上,生成hashCode()和equals()方法,默认情况下,它将使用所有非静态,非transient字段。但可以通过在可选的exclude参数中来排除更多字段。或者,通过在parameter参数中命名它们来准确指定希望使用哪些字段。
- @NonNull: 注解在属性上,标识属性是不能为空,为空则抛出异常(NullPointerException)。
- @CleanUp : 自动资源管理,不用再在finally中添加资源的close方法 ,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流。
- @NoArgsConstructor : 用在类上,自动生成无参构造函数。
- @RequiredArgsConstructor : 用在类上,自动生成所有参构造函数。
- @AllArgsConstructor : 用在类上,自动生成把所有@NonNull属性作为参数的构造函数。
- @Value:用在类上,相当于为属性添加final声明,只提供getter方法,而不提供setter方法。
lombok示例:
示例列举了最常使用的@Data
和@Slf4j
注解,首先创建实体类SysUser并且加上@Data
注解
@Data
public class SysUser {
private String id;
private String username;
private String password;
private Date birthday;
private String email;
}
然后创建TestController
类,在类里面加上@Slf4j
注解,并且在类里面创建了SysUser对象,虽然我们没有显示的
写SysUser的get、set、toString等方法,但是因为加了@Data
注解就可以直接使用了
@RestController
@RequestMapping("Test")
@Slf4j
public class TestController {
@RequestMapping("lombok")
public Object hello(){
log.info("这个log对象是由@Slf4j自动生成的。");
// 创建一个SysUser对象
SysUser sysUser = new SysUser();
// 使用set方法设置属性:虽然类里面没有明确写set方法,但是我们可以调用
sysUser.setId("id10001");
sysUser.setBirthday(new Date());
sysUser.setEmail("aa@aa.com");
sysUser.setPassword("111");
sysUser.setUsername("lombok");
// 使用get方法获取属性
log.info(sysUser.getUsername());
// 使用toString方法
log.info(sysUser.toString());
return sysUser;
}
}
::: tip 推荐使用技巧
- 在 Bean 或者 Entity 类上使用
@Data
注解 - 需要打印日志的类使用
@Slf4j
注解 - lombok还有很多其它用法,大家可以看注解的解释自行练习,有需要了再用。
:::
测试
启动服务,在浏览器输入http://localhost:8088/moyundong/Test/lombok
来看看效果。
本节示例下载地址:java相关demo下载列表
::: warning 注意
在不同的平台,文档显示的效果是不一样的,最佳最全观看地址:springboot集成lombok
欢迎大家来博客了解更多内容:java乐园
:::