@Aspect
์ด์ ๊ธ(https://ttl-blog.tistory.com/864)์์ Advisor๋ง ๋ฑ๋กํ๋ฉด ์คํ๋ง์ด ์๋์ผ๋ก ํ๋ก์๋ฅผ ์์ฑํด ์ค๋ค๊ณ ํ์์ต๋๋ค.
@Aspect๋ Advisor๋ฅผ ํธํ๊ฒ ๋ง๋ค ์ ์๋๋ก ํด์ฃผ๋ ์ด๋ ธํ ์ด์ ์ ๋๋ค.
์ด๋ค ์์ผ๋ก ๋ง๋ค์ด์ง๋์ง ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
joinPoint.proceed()๋ target(์ค์ ๋์)์ ๋ฉ์๋๋ฅผ ์ค์ ๋ก ํธ์ถํ๋ ์ฝ๋์ ๋๋ค.
JoinPoint๋ target๊ณผ ์คํ๋ ๋ฉ์๋์ ๋ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์๊ณ ์์ผ๋ฏ๋ก ์คํํ ์ ์๋ ๊ฒ์ ๋๋ค.
๋น์ผ๋ก ๋ฑ๋กํ์ฌ์ผ๋ง ์ ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ @Component๋ฅผ ํตํด ๋น์ผ๋ก ๋ฑ๋ก๋๊ฒ ํด์ฃผ์์ต๋๋ค.
์๋ ์๋ฆฌ
์๋ ํ๋ก์ ์์ฑ๊ธฐ(AnnotationAwareAspectJAutoProxyCreator)๋ Advisor๋ฅผ ์๋์ผ๋ก ์ฐพ์์์, ํ์ํ ๊ณณ์ ํ๋ก์๋ฅผ ์์ฑํ๊ณ ์ ์ฉํด์ค๋ค๊ณ ํ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ถ๊ฐ๋ก @Aspect๋ฅผ ์ฐพ์์ ์ด๊ฑธ์ Advisor๋ก ๋ง๋ค์ด ์ฃผ๋ ์ญํ ๋ ์ํํฉ๋๋ค.
์ด๋ @Aspect๋ฅผ Advisor๋ก ๋ง๋๋ ์ญํ ์ ์ด๋๋ฐ์ด์ ๋น๋์ธ BeanFactoryAspectJAdvisorsBuilder๊ฐ ์ํํฉ๋๋ค.
Reference
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#aop
'๐๏ธ Spring > AOP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AOP] AOP ํฌ์ธํธ์ปท ํํ์ (1) - execution (0) | 2022.08.02 |
---|---|
[AOP] ์คํ๋ง AOP ๊ตฌํ๋ฐฉ๋ฒ (0) | 2022.08.02 |
[AOP] ๋น ํ์ฒ๋ฆฌ๊ธฐ(BeanPostProccessor)์AnnotationAwareAspectJAutoProxyCreator (0) | 2022.08.01 |
[AOP] ํฌ์ธํธ์ปท, ์ด๋๋ฐ์ด์ค, ์ด๋๋ฐ์ด์ (0) | 2022.08.01 |
[AOP] ํ๋ก์ ํฉํ ๋ฆฌ (0) | 2022.08.01 |