# aop_practice **Repository Path**: zhxs_code/aop_practice ## Basic Information - **Project Name**: aop_practice - **Description**: 个人实现aop的两种方式的练习:cglib与jdk动态代理 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # aop_practice #### 介绍 个人实现简单aop功能的练习. aop的实现原理的归纳: 1. 静态代理;(几乎没有使用) 2. 动态代理:jdk的动态代理 3. 子类代理:cglib jdk动态代理的要点: 1.代理对象不需要实现接口,但是目标对象一定要实现接口,否则不能使用动态代理. 2.由于使用的java的反射包中的java.lang.reflect.Proxy 类的newProxyInstance方法,所以目标对象必须实现接口. 方法: newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h); cglib代理的要点: 1.cglib底层是通过使用ASM字节码处理框架来转换字节码生成新的子类。 2.代理类不能为final 3.目标对象被拦截的方法不能为final/static修饰的 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)