POJO 기반 AOP - AspectJ 표현식
1. AspectJ에서 지원하는 패턴 표현식
2. 스프링은 메서드 호출관련 명시자만 지원
명시자(pattern)
-? 는 생략 가능
3. 명시자
- execution : 메소드 명을 기준으로 지정
- within : 타입 명을 기준으로 지정(class 기준)
- bean : 설정파일에 지정된 빈의 이름(name속성)을 이용해 지정. 2.5버전에 추가됨.(bean설정 기준)
4. 표현
명시자(패턴)
- 패턴은 명시자 마다 다름.
예) execution(public * abc.def..*Service.set*(..)
5. 패턴문자.
- * : 1개의 모든 값을 표현
- argument에서 쓰는 경우 : 1개의 argument
- package에 쓰인 경우 : 1개의 하위 package
- 이름(메소드, 클래스)에 쓰일 경우 : 모든 글자들
- .. : 0개 이상
- argument에서 쓰인 경우 : 0개 이상의 argument
- package에 쓰인 경우 : 0개 이상의 하위 package
6. execution
- execution(수식어패턴? 리턴타입패턴 패키지패턴?.클래스명패턴.메소드패턴(argument패턴))
- 수식어패턴 : public, protected, 생략
- argument에 type을 명시할 경우 객체 타입은 fullyName으로 넣어야 한다.
- java.lang은 생략가능
- 위 예 설명
적용 하려는 메소드들의 패턴은 public 제한자를 가지며 리턴 타입에는 모든 타입이 다 올 수 있다. 이름은 abc.def 패키지와 그 하위 패키지에 있는 모든 클래스 중 Service로 끝나는 클래스들 에서 set을 시작하는 메소드이며 argument는 0개 이상 오며 타입은 상관없다.
7. within
- within(패키지패턴.클래스명패턴)
8. bean
- bean(bean이름 패턴)
'프로그래밍 > Spring AOP' 카테고리의 다른 글
POJO 기반 AOP 구현 - Advice 클래스 작성(After Returning, After Throwing, After)- spring_aop_02_after[실습] (0) | 2012.06.25 |
---|---|
Spring_aop[실습] (0) | 2012.06.22 |
proxy패턴(대리인 패턴) (0) | 2012.06.22 |
POJO 기반 AOP 구현 (0) | 2012.06.21 |
Spring AOP 개요 (0) | 2012.06.21 |