美文网首页
代理和注解

代理和注解

作者: 章晓赟 | 来源:发表于2017-06-12 20:03 被阅读0次

自定义注解

开发步骤

创建一个@interface
String value();抽象方法用以接收数据
使用元注解,描述自定义注解
@Target指定注解可以加在哪里

ElementType.TYPE:可在类和接口上面
ElementType.METHOD:可方法上
ElementType.FIELD:可在属性
@Retention指定注解在什么时候有用

RetentionPolicy.RUNTIME:注解保留到运行时
RetentionPolicy.ClASS:注解保留到Class文件中
RetentionPolicy.SOURCE:注解保留到java编译时期
@Inherited可以被继承

jdk动态代理

被代理类必须实现一个接口,任意接口

public class Bus implements Runnable{}

创建一个类实现InvocationHandler,该类用来对象代理对象进行方法的增强

public class TimeInvocation implements InvocationHandler{
    private Object target;//被代理对象
    public TimeInvocation(Object target){
        this.target=target;
    }
}

在invoke()方法中调用被代理对象的方法,并且添加增强的代码

  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        long time1=System.currentTimeMillis();
        //调用被代理对象的方法
        method.invoke(target, args);
        long time2=System.currentTimeMillis();
        System.out.println(time2-time1);
        return null;
    }

通过Proxy.newProxyInstance(ClasLoader, Class, InvovationHandler)创建代理类对象
调用代理对象的方法

        TimeInvocation time=new TimeInvocation(s);
        Class<?> clazz=s.getClass();
        Runnable s1= (Runnable)Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), time);
        s1.run();

<a href="http://naotu.baidu.com/file/c75d0eab19eb600147a88885cfe1c938?token=e54d3196199a75cd">注解脑图</a>

<a href="http://naotu.baidu.com/file/77703a821df83340cef69a2ade6ca41f?token=e78c399433cae118">mybatis脑图

</a>

相关文章

  • 代理和注解

    自定义注解 开发步骤 创建一个@interfaceString value();抽象方法用以接收数据使用元注解,描...

  • AS运行Annotation

    AS 运行 Annotation 注解分为运行时注解和编译时注解 运行时注解 原理就是反射和代理(Proxy ) ...

  • spring aop 汇总

    静态代理、动态代理和cglib代理 aop 使用 Spring AOP - 注解方式使用介绍spring aop ...

  • Java 代理

    静态代理 动态代理 动态代理, 日志切片使用反射获得方法 动态代理, 自定义注解(对注解的方法,使用动态代理添加切...

  • 注解和动态代理

    按照来源注解 java自带的注解 @override@SuppressWarnings@Deprecated 第三...

  • 注解 和 动态代理

    步骤 1.创建一个@interface2.String value();抽象方法用以接收数据3.使用元注解,描述自...

  • Spring进阶之代理与AOP编程

    本文先介绍了代理中的静态代理,动态代理和Cglib代理,然后通过示例分别展示了如何通过注解和XML方式实现AOP编...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • retrofir

    注解 + 动态代理+反射+ okhttp

  • Java 注解工作原理

    注解的本质 这里先得出结论,注解的工作就是通过动态代理实现的。 定义和使用注解 下面来定义一个最简单的注解,并通过...

网友评论

      本文标题:代理和注解

      本文链接:https://www.haomeiwen.com/subject/cofrqxtx.html