이번 글은 https://medium.com/@jintin/annotation-processing-in-java-3621cb05343a의 도움을 많이 받았습니다.
1. 우선 Class나 Methods, parameters 혹은 Annotation의 Annotation에 따라 Annotation Class를 만든다.
2. Annotation Parser Classes를 생성한다.
3. Project에 Annotation들을 추가한다.
4. Compile을 시작하고 Annotation parser가 Annotation을 관리한다.
5. 자동 생성된 클래스들이 build 폴더에 추가된다.
예를 들어봅시다.
@Controller // Controller Annotation이 있으면 관련 객체를 생성해서 Spring Container에 얘를 넣어둠
public class MemberController {
MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
javax.annotation.processing 이라는 Package가 있다. 이 Package에서 annotation 처리에 대한 API를 제공한다. https://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/package-summary.html
그 중에서 AbstractProcessor는 JVM의 Compile Pipeline에 삽입할 수 있는 플러그인이다. 이 플러그인은 코드를 검사한 후 새로운 코드를 만들 수도 있다. 이러한 프로세서를 통해 Annotation은 처리된다.
'웹개발 > Spring' 카테고리의 다른 글
[Spring]Spring JPA의 1차 캐시는 얼마나 이득을 줄 수 있을까. (0) | 2020.11.08 |
---|---|
[Spring] Annotation을 알아보자 - 1. 기본 개념과 직접 해보기 (0) | 2020.08.06 |
[Spring] 테스트 코드는 순서대로 실행되지 않는다. (0) | 2020.08.04 |