execution 명시자는 Advice를 적용할 메서드를 명시할 때 사용되며, 기본 형식은 다음과 같다.
execution(수식어패턴? 리턴타입패턴 패키지패턴?이름패턴(파라미터패턴))
수식어패턴 : 생략이 가능한 부분으로 public, protected 등이 옴
리턴타입패턴 : 리턴 타입을 명시
클래스이름패턴, 이름패턴 : 클래스 이름 및 메서드 이름을 패턴으로 명시
파라미터패턴 : 매칭될 파라미터에 대해 명시
각 패턴은 '*'을 이용하여 모든 값을 표현할 수 있으며, 또한, '..'을 이용하여 0개 이상이라는 의미를 표현
execution(public void set*(..))
==> 리턴 타입이 void이고 메서드 이름이 set으로 시작하고, 파라미터가 0개 이상인 메서드 호출
execution(* kame.spring.chap03.core.*.*())
==> kame.spring.chap03.core 패키지의 파라미터가 없는 모든 메서드 호출
execution(* kame.spring.chap03.core..*.*(..))
==> kame.spring.chap03.core 패키지 및 하위 패키지에 있는 파라미터가 0개 이상인 메서드 호출
execution(Integer kame.spring.chap03.core.WriteAtricleService.write(..))
==> 리턴 타입이 Integer인 WriteArticeService 인터페이스의 write() 메서드 호출
execution(* get*(*))
==> 이름이 get으로 시작하고 1개의 파라미터를 갖는 메서드 호출
execution(* get*(*.*))
==> 이름이 get으로 시작하고 2개의 파라미터를 갖는 메서드 호출
execution(* real*(Integer, ..))
==> 메서드 이름이 read로 시작하고, 첫 번째 파라미터 타입이 Integer이며, 1개 이상의 파라미터를 갖는 메서드 호출
[참조] 스프링 2.5 프로그래밍(최볌균 지음)
execution(수식어패턴? 리턴타입패턴 패키지패턴?이름패턴(파라미터패턴))
수식어패턴 : 생략이 가능한 부분으로 public, protected 등이 옴
리턴타입패턴 : 리턴 타입을 명시
클래스이름패턴, 이름패턴 : 클래스 이름 및 메서드 이름을 패턴으로 명시
파라미터패턴 : 매칭될 파라미터에 대해 명시
각 패턴은 '*'을 이용하여 모든 값을 표현할 수 있으며, 또한, '..'을 이용하여 0개 이상이라는 의미를 표현
execution(public void set*(..))
==> 리턴 타입이 void이고 메서드 이름이 set으로 시작하고, 파라미터가 0개 이상인 메서드 호출
execution(* kame.spring.chap03.core.*.*())
==> kame.spring.chap03.core 패키지의 파라미터가 없는 모든 메서드 호출
execution(* kame.spring.chap03.core..*.*(..))
==> kame.spring.chap03.core 패키지 및 하위 패키지에 있는 파라미터가 0개 이상인 메서드 호출
execution(Integer kame.spring.chap03.core.WriteAtricleService.write(..))
==> 리턴 타입이 Integer인 WriteArticeService 인터페이스의 write() 메서드 호출
execution(* get*(*))
==> 이름이 get으로 시작하고 1개의 파라미터를 갖는 메서드 호출
execution(* get*(*.*))
==> 이름이 get으로 시작하고 2개의 파라미터를 갖는 메서드 호출
execution(* real*(Integer, ..))
==> 메서드 이름이 read로 시작하고, 첫 번째 파라미터 타입이 Integer이며, 1개 이상의 파라미터를 갖는 메서드 호출
[참조] 스프링 2.5 프로그래밍(최볌균 지음)
'프로그램 > Spring 2.5' 카테고리의 다른 글
[12일차] SpringFramework + ibatis 연동 (1) (0) | 2010.06.22 |
---|---|
[11일차] 데이터베이스 연동 - [JdbcDaoSupport] (2) | 2010.06.21 |
[9일차] POJO 클래스를 이용한 AOP-02 (Advice 작성) (4) | 2010.02.15 |
[8일차] POJO 클래스를 이용한 AOP-01 (10) | 2010.01.27 |
[7일차] AOP : Aspect Oriented Programming - 관점 지향 프로그래밍 (0) | 2010.01.27 |