步骤
1.创建一个@interface
2.String value();抽象方法用以接收数据
3.使用元注解,描述自定义注解
4.@Target指定注解可以加在哪里
ElementType.TYPE:可在类和接口上面
ElementType.METHOD:可方法上
ElementType.FIELD:可在属性
5.@Retention指定注解在什么时候有用
RetentionPolicy.RUNTIME:注解保留到运行时
RetentionPolicy.ClASS:注解保留到Class文件中
RetentionPolicy.SOURCE:注解保留到java编译时期
@Inherited可以被继承
动态代理:
①被代理类必须实现一个接口(任意接口)
②创建一个类实现InvocationHandler,该类用来对象代理对象进行方法的增强
③在invoke()方法中调用被代理对象的方法,并且添加增强的代码
④通过Proxy.newProxyInstance(ClasLoader, Class, InvovationHandler)创建代理类对象
⑤调用代理对象的方法