簡單介紹:
lombok 提供了簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 代碼撩扒。
lombok的官方網(wǎng)址:
幾個(gè)常用的 lombok 注解:
@Data:注解在類上譬重;提供類所有屬性的 getting 和 setting 方法岖研,此外還提供了equals乙埃、canEqual摆出、hashCode枚驻、toString 方法
@Setter:注解在屬性上包券;為屬性提供 setting 方法
@Getter:注解在屬性上纫谅;為屬性提供 getting 方法
@SneakyThrows:無需在簽名處顯式拋出異常
@Log4j:注解在類上;為類提供一個(gè) 屬性名為log 的 log4j 日志對(duì)像
@Slf4j: 同上
@NoArgsConstructor:注解在類上溅固;為類提供一個(gè)無參的構(gòu)造方法
@AllArgsConstructor:注解在類上付秕;為類提供一個(gè)全參的構(gòu)造方法
使用方式:
1 在pom文件中添加:
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.4</version>
<scope>provided</scope>
</dependency>
2 在idea中添加插件lombok(file->setting->plugins)
實(shí)現(xiàn)原理:
Lombok不是通過字節(jié)碼改寫來實(shí)現(xiàn)的。
它主要是用編譯器內(nèi)支持的annotation processing侍郭,直接操縱抽象語法樹(AST)盹牧,根據(jù)需要添加新節(jié)點(diǎn)俩垃。
以javac為例的話励幼,請(qǐng)參考官方文檔:
http://openjdk.java.net/groups/compiler/doc/compilation-overview/index.html