[spring] 간소화된 Advisor
- Pointcut은 중요한 기능. 원하는 메서드만 weaving 될 수 있도록 경계선을 두는 것은 중요함.
but
- Advisor 설정이 조금 불편한 점이 있었음.
Advisor에서 Pointcut 기능을 내재하는 Advisor가 있음.
이러한 Advisor를 통해 코드를 줄일 수 있음.
기존의 코드에서
- 원래는 Pointcut을 생성하고 Advisor도 생성해서 Advisor 내에 생성하는 까다로운 작업을 진행
- class 명의 마지막을 NameMatchMethodPointcutAdvisor로 변경
- <property 설정을 name = "mappedName" value = "total" />
- 이런 방법으로 진행시 Pointcut을 따로 만들지 않아도 Advisor 한 번으로 가능.
property name = mappedName 뒤에 s를 붙이고, list형식으로 value값으로 함수를 주면 한 번에 여러 개의 메서드 처리 가능
- 만약 함수명이 좀 많을 경우 패턴으로 변경하는 방법(정규표현식)
- 정규표현식을 이용하는 방법
- 클래스 명의 맨 뒤로 가서 RegexpMethodPointcutAdvisor 라고 적어준다.
- property의 name을 patterns 라고 적는다.
- 그 후 value값을 정규표현식에 맞게 쓴다
ex) . = any characto, * = 0~번 반복. 즉 [.*to.*] 는 to 앞에 어떤 문자열이든 몇번이든 올 수 있고 to 뒤에도 어떤 문자열이든 몇번이고 올 수 있다는 말이다.
참고영상 : https://www.youtube.com/watch?v=uPHMcE5iVcY&list=PLq8wAnVUcTFVUMCKI4CL_EHWW5ykPnL0z&index=8