여러 메서드에 공통 코드를 추가해야 한다면?
처음이나 끝
관점 지향 프로그래밍? 횡단 관심사? cross-cutting concerns?
부가 기능(advice)을 동적(실행중에)으로 추가해주는 기술
(부가 기능의 반대말: 핵심 기능)
메서드의 시작 또는 끝에 자동으로 코드(advice)를 추가한다.
용어 | 설명 |
---|---|
target | advice가 추가될 객체 |
advice | target에 동적으로 추가될 부가 기능(코드) |
join point | advice가 추가(joint)될 대상(메서드) |
pointcut | join point들을 정의한 패턴 |
proxy | target에 advice가 동적으로 추가되어 생성된 객체 |
weaving | target에 advice를 추가해서 proxy를 생성하는 것 |
원래 하나였던 코드를 쪼개 놓고 실행중에 다시 합치는 것이 AOP이다.
xml과 애너테이션 두가지 방법으로 가능하다.
advice가 추가될 메서드를 지정하기 위한 패턴
execution(반환타입 패키지명.클래스명.메서드명(매개변수 목록))