1. Joinpoint
์กฐ์ธ ํฌ์ธํธ๋ ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถํ๋ ๋ชจ๋ ๋น์ฆ๋์ค method๋ก์,
BoardServiceImpl์ด๋ UserServiceImpl ํด๋์ค์ ๋ชจ๋ method๋ฅผ ์กฐ์ธํฌ์ธํธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
2. Pointcut
ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถํ๋ ๋ชจ๋ ๋น์ฆ๋์ค method๊ฐ ์กฐ์ธํฌ์ธํธ๋ผ๋ฉด, ํฌ์ธํธ์ปท์ ํํฐ๋ง๋ ์กฐ์ธํฌ์ธํธ๋ฅผ ์๋ฏธํ๋ค.
3. Advice
ํก๋จ ๊ด์ฌ์ ํด๋นํ๋ ๊ณตํต ๊ธฐ๋ฅ์ ์ฝ๋๋ฅผ ์๋ฏธํ๋ค.
๋ ๋ฆฝ๋ ํด๋์ค์ method๋ก ์์ฑ๋๋ค.
์ด๋๋ฐ์ด์ค๋ก ๊ตฌํ๋ method๊ฐ ์ธ์ ๋์ํ ์ง ์คํ๋ง ์ค์ ํ์ผ์ ํตํด์ ์ง์ ํ ์ ์๋ค.
๋์ ์์ ์ 5๊ฐ์ง๋ก ์ง์ ํ ์ ์๋ค.
-
before
-
after
-
after-returning
-
after-throwing
-
around
4. Weaving
ํฌ์ธํธ์ปท์ผ๋ก ์ง์ ํ ํต์ฌ ๊ด์ฌ method๊ฐ ํธ์ถ๋ ๋, ์ด๋๋ฐ์ด์ค์ ํด๋นํ๋ ํก๋จ ๊ด์ฌ method๊ฐ ์ฝ์ ๋๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
5. Aspect ๋๋ Advisor
์ ์คํฉํธ๋ ํฌ์ธํธ์ปท๊ณผ ์ด๋๋ฐ์ด์ค์ ๊ฒฐํฉ์ผ๋ก์,
์ด๋ค ํฌ์ธํธ์ปท method์ ์ด๋ค ์ด๋๋ฐ์ด์ค method๋ฅผ ์คํํ ์ง ๊ฒฐ์ ํ๋ค.
์ ๋ฆฌ
์ฌ์ฉ์๋ ์์คํ
์ ์ฌ์ฉํ๋ฉด์ ๋น์ฆ๋์ค ์ปดํฌ๋ํธ์ ์ฌ๋ฌ '์กฐ์ธํฌ์ธํธ(1)'๋ฅผ ํธ์ถํ๊ฒ ๋๋ค.
์ด๋ ํน์ 'ํฌ์ธํธ์ปท(2)'์ผ๋ก ์ง์ ํ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ ์๊ฐ
'์ด๋๋ฐ์ด์ค(3)' ๊ฐ์ฒด์ ์ด๋๋ฐ์ด์ค ๋ฉ์๋๊ฐ ์คํ๋๋ค.
ํฌ์ธํธ์ปท์ผ๋ก ์ง์ ํ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋, ์ด๋๋ฐ์ด์ค ๋ฉ์๋๋ฅผ ์ฝ์
ํ๋๋ก ํ๋ ์ค์ ์ '์ ์คํฉํธ(4)'๋ผ๊ณ ํ๋ค.
์ ์คํฉํธ ์ค์ ์ ๋ฐ๋ผ '์๋น(5)'์ด ์ฒ๋ฆฌ๋๋ค.
'Spring > Spring Quick Start' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Advice ๋์ ์์ (0) | 2021.01.07 |
---|---|
ํฌ์ธํธ์ปท ํํ์ (0) | 2021.01.07 |
AOP ์๋ฆฌ๋จผํธ (0) | 2021.01.07 |
AOP ์ค์ ํ๊ธฐ (0) | 2021.01.07 |
AOP๋? (0) | 2021.01.07 |
[์๋ฌ] "useSSL" ์ํฐํฐ์ ๋ํ ์ฐธ์กฐ๋ ';' ๊ตฌ๋ถ์๋ก ๋๋์ผ ํฉ๋๋ค. (0) | 2021.01.07 |