Java
Java - 애노테이션 프로세서 정리
엔꾸꾸
2019. 11. 18. 22:30
애노테이션 프로세서 정리
애노테이션 프로세서
소스코드 레벨에서 소스코드에 붙어있는 애노테이션 정보를 읽어, 컴파일러가 컴파일 중에 새로운 소스를 생성하거나, 변경(권장하지않음)이 가능하다.
소스코드와 별개의 리소스 파일도 생성이 가능한 강력한 기능
롬복
AutoService
- java.utilServiceLoader용 파일 생성 유틸리티
- 리소스 파일을 만들어준다.
@Override
- Java5에서 기본제공 되던 애노테이션 프로세서
- 실제로 인터페이스나 상위클래스를 구현하는지 판단해준다.
Dagger2
- 컴파일 타임 DI 제공
장점
- Java agent를 사용하는 바이트코드 조작은 런타임시 발생하는 일이기 때문에, 애플리케이션 구동 등의 시점에 추가적인 비용이 발생한다.
- 컴파일 시점에 조작하기 때문에 런타임시 비용이 제로이다.
단점
- 기존의 코드를 고치는 방법은 public한 API를 제공하지 않는다.