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;
	}
반응형