개발공부/Spring

[spring] 간소화된 Advisor

환타몬 2022. 1. 26. 21:29

- 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