a1f594e7e302

Lombok的了解和使用

2022-09-11  本文已影响0人  嘘寒问暖

@Data

创建实体类时,加上@Data会帮助我们省去大量的getter,setter方法。会自动帮我们生成getter,setter,同时还有toString,equals方法。

使用方法,仅在idea中的使用方法:

在类上直接加上@Data,导入依赖,下载lombok插件。

在maven库中添加依赖

            <dependency>

                <groupId>org.projectlombok</groupId>

                <artifactId>lombok</artifactId>

                <version>1.16.10</version>

            </dependency>

@EqualsAndHashCode:

 默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hasCode方法,也可以指定具体使用哪些属性。

@Getter/@Setter:

可以作用在类上和属性上,放在类上,会对所有的非静态属性生产Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:

无参构造器,部分参数构造器,全参构造,当我们需要重载多个构造器时候,Lombok就无能为力了。

当我们在serviceImpl层引入dao层时可以用该注解帮我们为private final XxxxMapper xxxxMapper;在构造器中赋予初始值;

@ToString:

生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

Lombok原理:

运行时解析:

运行时能够解析的注解,必须将@Retention设置为RUNTIME,这样可以通过反射拿到该注解。java.lang.reflect反射包中提供了一个接口AnnotatedElement,该接口定义了获取注解信息的几个方法,Class、Constructor、Field、Method、Package等都实现了该接口,大部分开发者应该都很熟悉这种解析方式。

Lombok问题/不足:

无法支持多个构造方法的重载。

@GetMapping:处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)

@PostMapping: 处理post请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”,method = RequestMethod.POST)

@PutMapping:和PostMapping作用等同,都是用来向服务器提交信息。如果是添加信息,倾向于用@PostMapping,如果是更新信息,倾向于用@PutMapping

@DeleteMapping: 删除URL映射

@PatchMapping:参考数据库的update

上一篇 下一篇

猜你喜欢

热点阅读