`
leayer
  • 浏览: 60468 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

面向切面之AOP原理浅析

阅读更多
先上代码

package com.dzeay.aop;

public interface IBusiness {
    public void excute();
}


package com.dzeay.aop;

public class BusinessImpl implements IBusiness {

    public void excute() {
        System.out.println("BusinessImpl.excute");
    }
}


package com.dzeay.aop;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class LogHandler implements InvocationHandler {

    private Object delegate;

    public LogHandler(Object delegate) {
        this.delegate = delegate;
    }

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object obj = null;
        try {
            System.out.println(method + "\tbegin");
            obj = method.invoke(delegate, args);
            System.out.println(method + "\tend");
        } catch (Exception e) {
        }

        return obj;
    }
}


package com.dzeay.aop;

import java.lang.reflect.Proxy;

public class TestClass {

    /**
     * @param args
     */
    public static void main(String[] args) {
        IBusiness businessImp = new BusinessImpl();

        IBusiness proxy = (IBusiness) Proxy.newProxyInstance(businessImp.getClass().getClassLoader(), businessImp.getClass().getInterfaces(), new LogHandler(businessImp));

        proxy.excute();
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics