Spring AOP 4-2 Spring AOP 패턴 매핑
Spring AOP 4-2 Spring AOP 패턴 매핑
Spring AOP 표현식
wild card
연산자
패턴 매핑 기본 get*(..) / * get*(..)
클래스 지정
com.multicampus.biz.*
“*”을 이용하여 특정 패키지의 모든 클래스를 지정할 수 있다.
com.multicampus.biz 패키지에 있는 모든 클래스를 지정한다.
com.multicampus.biz..*
“..”을 사용하여 특정 패키지로 시작하는 모든 패키지를 지정할 수 있다.
com.multicampus.biz 패키지 및 그 서브 패키지의 모든 클래스를 지정한다.
UserService+
“+”는 서브 타입을 표현할 때 사용된다.
UserService 클래스 혹은 UserService 인터페이스나 이로부터 파생된 모든 서브 클래스를 지정한다.
!UserService+
“!”은 논리부정 조건을 의미한다.
UserService 클래스 혹은 UserService 인터페이스나 이로부터 파생되지 않은 모든 클래스를 지정한다.
com.multicampus.biz.* && !Serializable+
“&&” 조건은 and 연산자임으로 두 조건을 모두 만족시키는 클래스를 지정한다.
com.multicampus.biz 패키지의 모든 클래스 중에서 Serializable 인터페이스를 구현하지 않은 클래스들을 지정한다.
int || Integer
“||” 연산자는 or 연산을 표현함으로 int 타입으로 표현되거나 Integer 타입으로 표현되는 요소를 지칭한다.
modifier 지정
public static void getInstance(..)
정확하게 public static이 붙은 getInstance 메소드를 지정한다.
!private * *(..)
메소드 앞에 private이 붙었고 “!”이 설정되었음으로 private으로 선언되지 않은 모든 메소드를 지정한다.
* get*(..)
getXXX 메소드를 지정하였다. get 앞에 붙은 “*”는 리턴 타입이며, 별도의 Access Modifier가 설정되지 않았다. 이는 Default Modifier를 지정하는 것이 아니라 무엇이 붙든 상관없는 것으로 처리된다.
생성자 지정
new(..)
“new”는 메소드 이름을 지정하는게 아니라 생성자를 지정한다.
매개변수 상관없이 생성자를 지칭한다.
UserServiceImpl.new(..)
UserServiceImpl 클래스의 new 메소드가 아니라 UserServiceImpl 클래스의 생성자를 지정한다.
매개변수 지정
표현식 | 설명 |
* addUser(..) | 매개변수의 개수와 타입이 뭐가 오든 상관 없는 것으로 처리된다. |
* addUser(*) | 반드시 1개의 임의의 매개변수가 선언되어야 한다. |
* addUser(*, ..) | 최소 한 개의 매개변수가 선언되어야 하며, 이후 다른 매개변수가 있어도 되고 없어도 되는 것으로 처리된다. - addUser(UserVO vo) - addUser(String id, String password, int empNo) |
* addUser(*, .., String, *) | 임의의 매개변수가 나오고 그 사이 String 타입의 매개변수가 있어야 하며 String 매개변수 뒤에는 반드시 임의의 매개변수가 하나 더 나와야 한다. 결과적으로 중간에 String 타입을 매개변수로 가지는 최소 3개의 매개변수가 선언된 addUser() 메소드로 해석할 수 있다. - addUser(UserVO vo, String address, int empNum) - addUser(UserVO vo, int age String address, int empNum) |