# 6.3 Spring의 Advisor API by ks

Spring에서 Advisor는 pointcut 표현식과 연관된 하나의 advice 객체만을 포함하는 aspect이다.

{% hint style="info" %}
&#x20;1 advice + 1 pointcut = 1 advisor

aspect = advisors
{% endhint %}

{% hint style="info" %}
introduction (인트로덕션)

**정적인 AOP 방식**. 동적인 AOP 방식을 사용하면 조인 포인트에 어드바이스를 적용하지만, 인트로덕션을 사용하면 기존의 클래스나 인터페이스에 필요한 메소드나 필드를 추가해서 사용할 수 있게함. OOP에서 말하는 확장의 개념과는 다르다.&#x20;

참조 : [https://isstory83.tistory.com/90](https://isstory83.tistory.com/90)
{% endhint %}

소개 (introduction) 의 특별한 경우를 제외하고, 어떤 advisor도 어떤 advice을해도 사용될 수 있습니다.`org.springframework.aop.support.DefaultPointcutAdvisor`가 가장 일반적으로 사용되는 advisor 클래스입니다. 그것은 `MethodInterceptor`, `BeforeAdvice`또는 `ThrowsAdvice`과 사용될 수 있다.

동일한 AOP 프록시에서 Spring의 advisor 유형과 advice 유형을 혼합하는 것이 가능합니다. 예를 들어, 한 번의 프록시 구성에서 인터셉터 어라운드 어드바이스를 사용하고 advice을 던지며 before advice를 할 수 있습니다. **Spring은 필요한 인터셉터 체인을 자동으로 생성합니다.**

{% hint style="info" %}
**전에 설명 했었던 proceed() 로 연결되는 흐름이 인터셉터 체인인거같아. proceed()를 하려면 메소드에 주입되어야하는데 before advice는 메소드 실행 전에 실행되는 거라서 혹시라도 인터셉터 체인에 문제가 생길 때 실패할 가능성이 없대.**&#x20;
{% endhint %}
