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:面向切面编程
是一种思路,不是一种语言。典型的例子包括日志、验证、事务管理等。

你可能感兴趣的:(AOP——基本内容)