AOP快速入门
2024-08-24 05:21:39
一、概念
AOP面向切面编程,是函数式编程的延申,是对OOP的补充;
代理模式:拦截增强作用,增强功能;
1、java继承,纵向共性抽取,
2、横向切面AOP织入增强代码方式
二、原理是通过代理机制,代理模式的意思就是用代理对象增强原来的真实对象的功能,如Filter拦截器;
其中,Proxy是java自带的一个类;
三、AOP术语
四、手动实现AOP编程,用JDK的Proxy代理,AOP只是一种思想
代理:必须要有接口存在,因为创建代理对象时参数列表第二个参数就是接口的实现类对象(真实对象),接口是不能创建对象的;
1、静态工厂类:
其中,先创建了接口的实现类对象,为真实对象,再创建代理对象来拦截和增强真实对象的方法功能;
其中,这边的创建代理对象的第三个参数列表是一个匿名内部类,匿名内部类访问外面的静态方法中的局部变量时,要让这变量用final修饰;
代码测试:
其中,使用静态工厂创建出代理对象增强真实对象的方法功能;
五、使用cglib代理手动实现AOP
1、代码实现
代码测试:
2、细节优化
proxy代理对象是真实对象的子类;
解耦是和外面的studentService对象没有关系了;
动态代理意思是这个代理对象是程序运行时生成的,代码里看不到这个类和对象存在;
最新文章
- cstore_fdw的安装使用以及源码分析
- 有人要分享pjax吗?
- Java this的一两点使用
- ORACLE 数据库 MOD 函数用法
- React - redux, jsx中写js示例
- PicklingError: Can&#39;t pickle <;type &#39;generator&#39;>;: it&#39;s not found as __builtin_
- Android中的EditText默认时不弹出软键盘的方法
- chgrp、chown、chmod命令
- hdoj 1969 Pie【二分】
- 什么是Web Worker?
- APP性能测试(电量)
- hive的数据导入与数据导出:(本地,云hdfs,hbase),列分隔符的设置,以及hdfs上传给pig如何处理
- C++ 中时钟函数的使用
- Dubbo-Fail to decode request due to: RpcInvocation
- Linux 挂载
- Spring3.2.3+Quartz2.2.1 整合配置
- brew 接口的原理
- .aspx页面 引用命名空间 (Import 指令,web.config)
- 在centos 5.11上安装pylint
- c语言描述的二叉树的基本操作(层序遍历,递归,非递归遍历)
热门文章
- HCNA Routing&;Switching之VLAN间路由
- 手写Pascal解释器(一)
- CF466C 题解
- 干了8年Android开发熬到年薪40万,突然接到被辞退消息,应该怎么办?
- 记一次在Windows10桌面环境搭建Jekins的吐血经历
- 字符串对比 BASIC-15
- 【SpringBoot技术专题】「JWT技术专区」SpringSecurity整合JWT授权和认证实现
- SpringCloud升级之路2020.0.x版-17.Eureka的实例配置
- NOIP 模拟 $20\; \rm 玩具$
- (二)js基础。。。freecodecamp笔记