DevBoi

[Spring] Pointcut 개념과 공부 본문

Develop/[Spring]

[Spring] Pointcut 개념과 공부

HiSmith 2022. 3. 3. 00:18
반응형

Pointcut :  

JoinPoint : 조인포인트는, 특정 aop가 발생되는 지점을 이야기한다. 이전 포스팅에서, 조인포인트를 지정하지 않아, 모든 메소드가 자동으로 걸렸던걸 이해하면 편하다, 이 조인포인트는 advice별로 적용이 가능하다.   

weaving : 위빙은 뜨개질하다라는 의미이기도 하다, 실제로 메소드나 특정 클래스가 호출될때 프록시를 통하게 되는데

해당 위빙은 프록시와, 이 타겟에 대한 동작과정을 엮는것을 의미한다.

 

이러한 Pointcut과 advice를 연결해주는 것을 advisor라고 한다.

시점, pointcut과 advice (행위) 를 서로 연결해 주는 중간 매개체라고 하면된다.

요런식으로 해당 매핑되는 메소드를 리스트 형태로, 세팅 할수도있다. 추가로 property name으로주는 것은

사실상 저기에 setAdvice로 주는 것과 같다.

 

우선 시점의 classicPointCut이다. 해당 포인트컷은, 메소드에 대한 값을 줘서 특정 메소드가 동작할때만 이라는 시점을 줄수있다.

 

이렇게 하면 해당 어드바이저를 통해, 특정 포인트컷 시점에, 어드바이스를 실행할수있게 된다.

이전에 만들었던 advice와, 해당 pointcut을 서로 연결해주는 advisor이다.

마지막으로, 해당 프록시 빈에 해당 어드바이저를 넣어준다.

 

해당 과정으로 쉽게? 조금 불편하게 넣을수있다.

 

하지만 이건 옛날 방식이고, 요즘에는 간편하게 지원을 해준다.

 

우선 이런방식으로, advice는 받고, 해당 어드바이스와 메소드 이름으로, aop를 적용할수있는 advisor다, class는 NameMatchMethodPointcutAdvisor이다. 

 

추가로, 해당 메소드 이름 패턴으로, 정규식을 활용하여 pointcut 시점에 advice를 실행시켜주는 advisor가 존재한다.

 

 

 

반응형