汇编语言---面向机器
C语言------面向过程
Java语言---面向对象
AOP---------面向切面(面向很多对象)
aop理解:切面:功能模块(如事务,日志,安全...)
通知:就是一个类,包含了多个切面(多个可共用的代码/函数),spring中有五种通知;
当某些service需要该功能(切面)时,将切面织入service;
原理:
A接口--声明play方法
B1类--实现A接口---实现play方法
B2类--实现A接口---实现play方法
D类---用作代理---实现A接口---(spring提供了proxyFactoryBean对象)--只需配置不需要编写类(使用了动态代理技术);
T类---作为通知(必须implements spring五种通知里的一种,例如:前置通知)(前置通知:在执行目标代码前先执行通知)
(通知--织入--代理对象)
流程:
A a1=getbean();通过接口调用play方法
a1.play();
1.调用B1或者B2类的play方法
2.由于B1,B2类被代理,所以要经过D类,执行通知中的方法
简单步骤:1.定义接口
2.编写对象(被代理对象=目标对象)
3.编写通知(前置通知在目标方法前调用)
4.在beans.xml中配置
4.1 配置 (被代理对象=目标对象)
4.2 配置通知
4.3 配置代理对象(proxyFactoryBean 对象实例)
4.3.1 代理接口集合
4.3.2 织入通知
4.3.3 配置被代理对象
注:(知识点)
1.可以将通知看成拦截器;
2.最后调用的时候,getbean是获取的代理对象(proxyFactoryBean);
3.类A 实现接口B、接口C
那么 B a=new A(); 则a可以调用所有接口B中声明的方法;不能调用C 中声明的方法,尽管A实现了接口C;
但是可以通过以下方式调用: (C)a.method...其中method为C中声明的方法;