5. XML 사용하는 초간단 AOP 예제
초간단 AOP 예제는 이것으로 세개 째군요.
이전에 올렸던 @AspectJ 사용하는 초간단 예제를 XML 설정 파일을 사용하도록 바꿔봤습니다.
다른 파일들은 모두 같고 MannerAOP파일에서 모든 어노테이션들을 띄어 내고 다음과 같이 수정했습니다.
public class MannerAOP {
public void beforeSaying() {
System.out.println("다시 한 번 소개 합니다~");
}
public void afterSaying() {
System.out.println("AOP 죽~여 줍니다.");
}
}
그리고 XML 설정 파일에서 저번에는
<aop:aspectj-autoproxy/>
이렇게 한 줄이 있었는데요. 이 것을 지우고 다음과 같이 설정합니다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- this is the object that will be proxied by Spring's AOP infrastructure -->
<bean id="keesun" class="secondSpringAOP.Keesun" />
<!-- this is the actual advice itself -->
<bean id="manner" class="secondSpringAOP.MannerAOP" />
<aop:config>
<aop:aspect ref="manner">
<aop:pointcut id="greeting"
expression="execution(public * secondSpringAOP.Human.sayName(..))" />
<aop:before pointcut-ref="greeting" method="beforeSaying" />
<aop:after-returning pointcut-ref="greeting" method="afterSaying" />
</aop:aspect>
</aop:config>
</beans>
결과는 다음과 같습니다.
저는 백~기~선입니다.
AOP 죽~여 줍니다.
이 예제를 돌리기 위해서는 이전에 추가했던 spring.jar, commons-logging.jar, aspectjrt.jar, aspectjweaver.jar 이 것들 이 외에 'Spring-with-dependencies 설치 폴더'/lib/asm/ 안에 있는 asm-2.2.2.jar, asm-commons-2.2.2.jar 파일을 classpath에 추가해 주어야 합니다.
bl165.zip