여러 라운드(rounds)에 거쳐 소스 및 컴파일 된 코드를 처리할 수 있다.
(java version 6 부터 제공)
Javapoet : 소스코드 생성 유틸리티
AutoService : 서비스 프로바이더 레지스트리 생성기
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.0-rc6</version>
</dependency>
→ resources의 META-INF 밑에 service를 자동으로 생성해준다.
@Magic 이라는 커스텀 애노테이션을 생성하고
@Magic 이라는 애노테이션이 붙어 있으면 MagicMoja.java 라는 클래스를 생성할 수 있게 할 것이다.
Moja.java interface
package me.ssonsh.annotationprocessor;
@Magic
public interface Moja {
public String pullOut();
}
App.java
package me.ssonsh.annotationprocessor;
public class App {
public static void main(String[] args){
Moja moja = new MagicMoja();
System.out.println(moja.pullOut());
}
}