4. @AspectJ 사용하는 초간단 AOP 예제

사용자 삽입 이미지
JDK 6에서도 테스트 해봤습니다.
Spring 2.5 jar 파일을 사용했으며, AspectJ 관련 라이브러리는 lib폴더에 있는 것들을 사용했습니다.

결과화면
사용자 삽입 이미지오랜만에 배치기 노래도 듣을 수 있고 좋군요.

저 예제를 돌리고 나서 얼마나 신났었는지 그 때의 기분을 고대로 느낄 수 있었습니다.
댓글 주셔서 감사합니다.
================================================================================

Spring Reference 6장에 있는 코드들을 테스트 해보기 위해 초간단 예제를 만들어 봅니다.
참조 : http://www.infoq.com/articles/Simplifying-Enterprise-Apps

소스 코드 보기

[#M_ more.. | less.. |

// Human.java
public interface Human {    
     
public void sayName();

}


// Keesun.java

public class Keesun implements Human {

       public void sayName() {

             System.out.println(저는 ~~선입니다.”);

       }

}


//MannerAOP.java

@Aspect

public class MannerAOP {

 

       @Pointcut(“execution(public * Human.sayName(..))”)

       public void greeting() {

       }

 

       @Before(“greeting()”)

       public void hi() {

             System.out.println(만나서 ~~습니다.”);

       }

 

       @AfterReturning(“greeting()”)

       public void doBeforeOne() {

             System.out.println(“AOP ~ ~ 줍니다~”);

       }

}


//aopAppContext.xml

<?xml version=“1.0” encoding=“UTF-8”?>

<beans xmlns=http://www.springframework.org/schema/beans&#8221;

       xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance&#8221;

       xmlns:aop=http://www.springframework.org/schema/aop&#8221;

       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&#8221;>

 

       <!– this is the object that will be proxied by Spring’s AOP infrastructure –>

       <bean id=“keesun” class=“firstSpringAOP.Keesun” />

 

       <aop:aspectj-autoproxy />

 

       <!– this is the actual advice itself –>

       <bean id=“mannerAOP” class=“firstSpringAOP.MannerAOP” />

</beans>


// TestFirstAOP.java

public class TestFirstAOP {

       public static void main(String[] args) {

 

             BeanFactory bf = new ClassPathXmlApplicationContext(

                           “firstSpringAOP/aopAppContext.xml”);

             Human human = (Human) bf.getBean(“keesun”);

             human.sayName();

       }

}


_M#]실행 결과

만나서 반~갑~습니다.
저는 백~기~선입니다.
AOP 죽~ 여~ 줍니다~

이 프로그램이 돌아가려면 Spring을 사용하기 때문에 이 전 글에서 추가 했던 spring.jar파일과 commons-logging.jar가 필요하며 AspectJ를 사용하고 있기 때문에 ‘AspectJ 설치 폴더’/lib or Spring-with-dependencies를 설치하셨다면 ‘Spring 설치 폴더’/lib/aspectj/ 안에 있는 aspectjrt.jar 와 aspectjweaver.jar 파일을 classpath에 추가해야 합니다.

예제를 돌렸네요. 아고 기뻐라.


bl162.mp3bl163.zip