<aop:config>: AOP ์ค์ ์ ๋ฃจํธ ์๋ฆฌ๋จผํธ. ํ์ ์๋ฆฌ๋จผํธ๋ก <aop:pointcut>, <aop:aspect>๊ฐ ์๋ค.
<aop:pointcut>: ํฌ์ธํธ์ปท์ ์ง์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ฌ๋ฌ ๊ฐ ์ ์ํ ์ ์์ผ๋, ๊ฐ๊ฐ ์ ์ผํ ์์ด๋๋ฅผ ํ ๋นํด์ผ ํ๋ค.
<aop:aspect>: ํต์ฌ ๊ด์ฌ์ ํด๋นํ๋ ํฌ์ธํธ์ปท ๋ฉ์๋์ ํก๋จ ๊ด์ฌ์ ํด๋นํ๋ ์ด๋๋ฐ์ด์ค ๋ฉ์๋๋ฅผ ๊ฒฐํฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
public class LogAdvice{
public void printLog(){
System.out.println("[๊ณตํต ๋ก๊ทธ] ๋น์ฆ๋์ค ๋ก์ง ์ํ ์ ๋์");
}
}
<bean id="log" class="com.heidi.biz.board.common.LogAdvice"></bean>
<aop:config>
<aop:pointcut expression="execution(* com.heidi.biz..*Impl.*(..))" id="allPointcut"/>
<aop:pointcut expression="execution(* com.heidi.biz..*Impl.get*(..))" id="getPointcut"/>
<aop:aspect ref="log">
<aop:before pointcut-ref="getPointcut" method="printLog" />
</aop:aspect>
</aop:config>
์์ ์ฝ๋๋ฅผ ํด์ํ๋ฉด, getPointcut์ผ๋ก ์ค์ ํ ํฌ์ธํธ์ปท ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋
log๋ผ๋ ์ด๋๋ฐ์ด์ค ๊ฐ์ฒด์ printLog()๊ฐ ์คํ๋๊ณ
์ด๋ printLog() ๋ฉ์๋ ๋์ ์์ ์ด <aop:before>๋ผ๋ ๋ด์ฉ์ ์ค์ ์ด๋ค.
<aop:advisor>: aspect์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋, Advice ๊ฐ์ฒด์ ์์ด๋ ๋๋ ๋ฉ์๋ ์ด๋ฆ์ ํ์ธํ ์ ์์ ๋, ์ฆ ํธ๋์ญ์ ์ค์ ๊ฐ์ ํน์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. ์ด ์๋ฆฌ๋จผํธ์ ๊ดํด์๋ ํธ๋์ญ์ ์์ ๋ค๋ฃฐ ๊ฒ์ด๋ค.
'Spring > Spring Quick Start' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JointPoint ๋ฉ์๋ (0) | 2021.01.07 |
---|---|
Advice ๋์ ์์ (0) | 2021.01.07 |
ํฌ์ธํธ์ปท ํํ์ (0) | 2021.01.07 |
AOP ์ฉ์ด (0) | 2021.01.07 |
AOP ์ค์ ํ๊ธฐ (0) | 2021.01.07 |
AOP๋? (0) | 2021.01.07 |