Java(자바)
AOP를 일반자바 프로젝트에서도 해보자
마샤와 곰
2019. 4. 25. 13:51
cglib 라이브러리를 사용하면 일반 자바프로젝트에서도 AOP 기능을 간단하게 구현 할 수 있다.
메이븐 기준으로 cglib 를 다운로드 받는다.
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.7</version>
</dependency>
그리고 MethodInterceptor라는 클래스를 상속받아서 사용하면 끝.
예제 코드는 추상클래스를 만들었으며, 해당 추상클래스를 일반 클래스에서 상속받으면 된다.
import java.lang.reflect.Method;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
/**
* 모든 DAO에 적용되는 추상 클래스
*/
public abstract class MyInterceptor implements MethodInterceptor{
/**
* AOP 같은 메소드
*/
@Override
public Object intercept(Object object, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
Object resultValue = null;
//if, else 같은거로 메소드 실행 시 조건을 커스터마이징 하면 된다.
resultValue = methodProxy.invokeSuper(object, args);
return resultValue;
}
반응형