Aop面向切面编程的入门总结

别说谁变了你拦得住时间么 提交于 2019-12-04 01:14:59

  aop面向切面编程是一种对于面向对象编程(oop)的补充,关注切面,便于处理日志,减少代码的修改,便于自定义个性化的输出。

  

  1.建立一个接口以及它的实现类,在建立一个代理类,所要显示的日志通过代理类来处理,来调用实现类里的方法。

//接口类public interface BankService {
    public void transfer(String target, String source, BigDecimal money);
}
//实现类
public class BankServiceImp implements BankService {
    public void transfer(String target, String source, BigDecimal money) {
        
    }
}
//代理类public class Objeproxy implements InvocationHandler {
    
    private Object target;
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println(method.getName() + "被执行参数如下");
        for(Object arg:args) {
            System.out.println("参数" + arg);
        }
        return method.invoke(target, args);
    }
    public Object createProxy(Object target) {
        this.target = target;
        return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this);  
    }
}

    此时便可以直接在主函数中使用代理类来实现输出,通过代理类来调用实现类的方法

//调试函数public static void main(String[] args) {
        BankService bs = new BankServiceImp();
       
        BankService bsProxy = (BankService) new Objeproxy().createProxy(bs);
        
        bsProxy.transfer("張三", "Lisi", new BigDecimal("0.3"));
    }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!