- 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
'개발공부 > Spring' 카테고리의 다른 글
[Spring] AOP (0) | 2022.02.14 |
---|---|
[Spring] IoC (Inversion of Control), DI (0) | 2022.02.10 |
[spring] Point Cut(Weaving, Join Point) (0) | 2022.01.26 |
[spring] After Returning /Throwing 어드바이스 구현하기 (0) | 2022.01.26 |
[spring] BeforeAdvice 구현하기 (0) | 2022.01.26 |