[AspectJ Weaver] execution ์ง์์ ์ค์ ๋ฐฉ๋ฒ ์ ๋ฆฌ
Execution ์ง์์
Execution ์ง์์ ์ค์ ๋ฐฉ๋ฒ
- Pointcut์ ์ง์ ํ ๋ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ
- ํ์ : execution(๋ฆฌํดํ์ ํด๋์ค์ด๋ฆ ๋ฉ์๋์ด๋ฆ(๋งค๊ฐ๋ณ์))
- ๋ฆฌํดํ์ โก๏ธ ๋ฉ์๋์ ๋ฆฌํด ํ์
- ํด๋์ค ์ด๋ฆ โก๏ธ ํจํค์ง๋ฅผ ํฌํจํ ํด๋์ค ์ด๋ฆ / ํจํค์ง ์๋ต ์ ๋ชจ๋ ํจํค์ง / ํด๋์ค ์๋ต ์ ๋ชจ๋ ํด๋์ค
- ๋ฉ์๋ ์ด๋ฆ โก๏ธ ๋ฉ์๋์ ์ด๋ฆ
- ๋งค๊ฐ๋ณ์ โก๏ธ ๋งค๊ฐ๋ณ์์ ํํ
์์ผ๋์นด๋
* โก๏ธ ํ๋์ ๋ชจ๋ ๊ฒ์ ์๋ฏธ
.. โก๏ธ ๊ฐ์ ์๊ด์์ด ๋ชจ๋ ๊ฒ์ ์๋ฏธ
์) execution(void com.atoz_develop.beans.TestBean1.method1())
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBean1 ํด๋์ค, method1 ๋ฉ์๋, ๋งค๊ฐ๋ณ์ ์์
execution ์ง์์๋ AspectJ Weaver๋ฅผ ์ฌ์ฉํด์ ์คํ๋ง AOP๋ฅผ ๊ตฌํํ ๋ PointCut์ ์ค์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์ค์ ๋ PointCut์ด ๋์ํ ๋ ์คํ๋ง์ด ์ด๋ฅผ ๊ฐ๋ก์ฑ์ ์ง์ ๋ advice๊ฐ ์๋น๋๋๋ก ํ๋ค.
๐ ์ฐธ๊ณ
AspectJ Weaver๋ฅผ ์ฌ์ฉํ XML ๊ธฐ๋ฐ์ ์คํ๋ง AOP ๊ตฌํ ๋ฐฉ๋ฒ
AspectJ Weaver๋ฅผ ์ฌ์ฉํ ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ์ ์คํ๋ง AOP ๊ตฌํ ๋ฐฉ๋ฒ
๐ ๋ค์ ์์ ๋ฅผ ํ ์คํธํ AspectJ Weaver ๋ฒ์ ์ 1.9.4์ด๋ค.
์์ 1
execution(void com.atoz_develop.beans.TestBean1.method1())
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBean1 ํด๋์ค, method1 ๋ฉ์๋, ๋งค๊ฐ๋ณ์ ์์
์์ 2
execution(void com.atoz_develop.beans.TestBean1.method1(int))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBean1 ํด๋์ค, method1 ๋ฉ์๋, int ๋งค๊ฐ๋ณ์ 1๊ฐ
์์ 3
execution(void com.atoz_develop.beans.TestBean1.method1(java.lang.String))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBean1 ํด๋์ค, method1 ๋ฉ์๋, String ๋งค๊ฐ๋ณ์ 1๊ฐ
์์ 4
execution(void com.atoz_develop.beans.TestBean1.method1(*))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, method1 ๋ฉ์๋, ๋ชจ๋ ํ์ ์ ๋งค๊ฐ๋ณ์ 1๊ฐ
์์ 5
execution(void com.atoz_develop.beans.TestBean1.method1(int, int))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, method1 ๋ฉ์๋, int ๋งค๊ฐ๋ณ์ 2๊ฐ
์์ 6
execution(void com.atoz_develop.beans.TestBean1.method1(int, java.lang.String))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, method1 ๋ฉ์๋, int ๋งค๊ฐ๋ณ์ 1๊ฐ, String ๋งค๊ฐ๋ณ์ 1๊ฐ
์์ 7
execution(void com.atoz_develop.beans.TestBean1.method1(*, *))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, method1 ๋ฉ์๋, ๋ชจ๋ ํ์ ์ ๋งค๊ฐ๋ณ์ 2๊ฐ
์์ 8
execution(void com.atoz_develop.beans.TestBean1.method1(..))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, method1 ๋ฉ์๋, ๋ชจ๋ ํ์ ์ ๋งค๊ฐ๋ณ์ 0๊ฐ ์ด์
์ด๋ ๊ฒ ์ค์ ํ๋ฉด ๋งค๊ฐ๋ณ์๊ฐ ์๋ method1() ๋ฉ์๋์ ํธ์ถ๋ PointCut์ผ๋ก ์ค์ ๋๋ค.
์์ 9
execution(void com.atoz_develop.beans.TestBean1.*(..))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans.TestBeans1 ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
๋ชจ๋ ๋ฉ์๋๋ฅผ PointCut์ผ๋ก ์ค์ ํ ๋ *(..)๋ฅผ ์ฌ์ฉํ๋ค.
์์ 10
execution(void com.atoz_develop.beans.*.method1(..))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans ํจํค์ง์ ๋ชจ๋ ํด๋์ค, method1 ๋ฉ์๋, ๋ชจ๋ ํ์ ์ ๋งค๊ฐ๋ณ์ 0๊ฐ ์ด์
์์ 11
execution(void com.atoz_develop.beans.*.*(..))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop.beans ํจํค์ง์ ๋ชจ๋ ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
์์ 12
execution(void com.atoz_develop.*.*.*(..))
โก๏ธ ๋ฆฌํดํ์ void, com.atoz_develop ์ดํ์ ๋ชจ๋ ํจํค์ง์ ๋ชจ๋ ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
์์ 13
execution(void *.*(..))
โก๏ธ ๋ฆฌํดํ์ void, ๋ชจ๋ ํจํค์ง, ๋ชจ๋ ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
ํจํค์ง๋ฅผ ์๋ตํ๋ฉด ๋ชจ๋ ํจํค์ง๊ฐ ๋์์ด ๋๋ค.
์์ 14
execution(int *.*(..))
โก๏ธ ๋ฆฌํดํ์ int, ๋ชจ๋ ํจํค์ง, ๋ชจ๋ ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
์์ 15
execution(* *.*(..))
โก๏ธ ๋ชจ๋ ๋ฆฌํดํ์ , ๋ชจ๋ ํจํค์ง, ๋ชจ๋ ํด๋์ค, ๋ชจ๋ ๋ฉ์๋
์์ 16
execution(* method1(..))
โก๏ธ ๋ชจ๋ ๋ฆฌํดํ์ , ๋ชจ๋ ํจํค์ง, ๋ชจ๋ ํด๋์ค, method1 ๋ฉ์๋, ๋ชจ๋ ํ์ ์ ๋งค๊ฐ๋ณ์ 0๊ฐ ์ด์
ํด๋์ค๋ฅผ ์๋ตํ๋ฉด ์ค์ ํ ํจํค์ง์ ๋ชจ๋ ํด๋์ค๊ฐ ๋์์ด ๋๋ค.
๊ด๋ จ ๊ธ
- AspectJ Weaver๋ฅผ ์ฌ์ฉํ XML ๊ธฐ๋ฐ์ ์คํ๋ง AOP ๊ตฌํ ๋ฐฉ๋ฒ
- AspectJ Weaver๋ฅผ ์ฌ์ฉํ ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ์ ์คํ๋ง AOP ๊ตฌํ ๋ฐฉ๋ฒ
References
'Javaยท๏ปฟServletยท๏ปฟJSP > LibraryยทFramework' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA/Hibernate] persistence.xml ์ค์ ๋ฐฉ๋ฒ (6) | 2020.03.19 |
---|---|
MyBatis ๋์ SQL - <choose>์ <set>์ ์ฌ์ฉํ์ฌ ๋์ SQL ๋ง๋ค๊ธฐ (1) | 2020.02.26 |
MyBatis์ Log4J ์ฐ๋ํ๊ธฐ (0) | 2020.02.25 |
MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ (0) | 2020.02.24 |
MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ (6) | 2020.02.23 |
๋๊ธ