最近看了一下Spring的Aop和Java的动态代理,下边利用个小例子,简单的表述一下。
Spring中的Aop实现
一,什么是Aop呢:
AOP是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,
设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
二,Spring中的Aop
spring中的aop运用了java中的动态代理来实现的,下边是我写的个小例子,便于理解,如有问题请提出。
1,需求:
我们经常遇到这样的情况,在很多不同的操做开始和结尾要做相同的操做。举个例子,比如你要实现一个对象
ByBus(乘坐公共汽车旅游)这个对象有一个seat()函数和一个rob()函数.如果你要正常乘车,在上车seat()之前
须要买票,在下车之前须要查票。如果你要做霸王车rob(),可以不用买票,也不用查票。
这个时候我们可以有以下两种实现方法。
1方法一。
2 更改seat()方法,在这个方法的第一句加上
3 System.out.println("buy ticket ");
4 最后一句加上
5 System.out.println("check ticket ");
6 然後调用
7 ByBus bb = new ByBus();
8 bb.seat();
9 bb.rob();
10方法二。
11 再调用之前加上
12 ByBus bb = new ByBus();
13 System.out.println("buy ticket ");
14 bb.seat();
15 System.out.println("check ticket ");
16 bb.seat();
17方法三。
18 利用代理模式,定义一个接口IByBus . ByBus实现接口 ,定义一个代理类,实现IByBus接口
19 public class ProxyByBus implements IByBus{
20 private IByBus byBus;
21 public ProxyByBus(IByBus byBus)

