簡單介紹:
lombok 提供了簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 代碼。
lombok的官方網(wǎng)址:
幾個常用的 lombok 注解:
@Data:注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在屬性上;為屬性提供 setting 方法
@Getter:注解在屬性上;為屬性提供 getting 方法
@SneakyThrows:無需在簽名處顯式拋出異常
@Log4j:注解在類上;為類提供一個 屬性名為log 的 log4j 日志對像
@Slf4j: 同上
@NoArgsConstructor:注解在類上;為類提供一個無參的構(gòu)造方法
@AllArgsConstructor:注解在類上;為類提供一個全參的構(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為例的話,請參考官方文檔:
http://openjdk.java.net/groups/compiler/doc/compilation-overview/index.html