Spring-AOP

历程:

汇编语言---面向机器

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中声明的方法;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值