AOP——基本内容

(1):代理模式

代理模式:就是在原有功能之上提供额外的服务。
特点:不改变目标对象;拥有额外功能。
分类:静态代理、动态代理
动态代理
1.实现invocationHandler接口
2.在实现接口的具体类当中常见代理对象:Proxy.newProxyInstance()
3.操作代理对象的时候会执行invoke()方法

public class LoginHandler implements InvocationHandler{

    private Object delegate;//代理对象,就是userserviceIMP对象
    public Object bind(Object delegate) {
        this.delegate=delegate;
        //创建代理对象:通过Proxy的静态方法newProxyInstance()创建代理对象
        return Proxy.newProxyInstance(delegate.getClass().getClassLoader(), 
                delegate.getClass().getInterfaces(), //代理对象的接口就是代理接口userservice
                this);
    }
    @Override
    //对代理对象进行操作的时候会执行invoke方法
    public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable {
        // TODO Auto-generated method stub
        Object result=null;
        result=arg1.invoke(delegate, arg2);
        
        return result;
    }

}
public class Test {

    public static void main(String[] args) {
        LoggerHandler lh = new LoggerHandler();
        UserService us = (UserService) lh.bind(new UserServiceImpl());//创建代理对象
        us.login("adi", "123");
    }

}

(2):aop简介

AOP:面向切面编程
是一种思路,不是一种语言。典型的例子包括日志、验证、事务管理等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 本文主要内容是对iOS的WebViewJavascriptBridge源码进行分析梳理,分为iOS端调用JS...
    EA88阅读 5,179评论 0 1
  • 这周,老高开始监督我学习了!好像,有个人在身边看着我,我自己做起点什么,才会更有意义!其实这样是不对的吧,总不能,...
    猫咪爱吃鱼_1340阅读 1,607评论 1 0
  • 道,提溜着脑袋走,是动态的。既然走,就有路,有脑袋,就有判断,就有选择,就有取舍,就有得失,就有加法和减法。
    德者才之帅阅读 1,081评论 0 0

友情链接更多精彩内容