Spring AOP的初步了解

原创 分享电脑学习 2019-05-18 21:08:35

想要了解Spring中的AOP,我们先了解下代理模式

在生活中,我们经常会遇到代理,比如中介、婚介、黄牛、代理办证等等,这些代理会比我更有效率或者更好的完成我们想做的事情,可无论那些代理,最终办的事情和我们自身想做的是一样的。

在编写程序的设计模式中,就借鉴了这种思想,也是人们常说的设计模式-代理模式。那我们来用代码看看代理的写法。

例子:我们模拟一个办证的代码,我们自己办证花费了5个小时,200元,如果使用代理人员只花费2个小时,但是支付了额外100元的手续费

办证接口Accreditation

Spring AOP的初步了解

 

委托办理人员类EntrustPerson

Spring AOP的初步了解

 

代理类ProxyAccreditation

Spring AOP的初步了解

 

测试类

Spring AOP的初步了解

 

Spring AOP的初步了解

 

代理最终和我们做的事情是一样的,还是会执行我们的方法

现在我们来看AOP,AOP适合横切逻辑,那么什么是横切逻辑呢?

看上面的测试类我们做一下变化,添加日志功能

Spring AOP的初步了解

 

日志、异常处理、事务控制等,在业务系统中很常见也很必须。

为了系统的健壮可用,在众多业务方法中需要反复编写类似的代码,就需要考虑很多问题,复杂性、是否处理正确,是否有漏洞等等。

那么在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,即穿插在业务中的操作就是所谓的"横切逻辑"

下面我们编写一个简单的AOP实现

首先准备好Jar包

Spring AOP的初步了解

 

我们编写一个日志类LoggerAop

Spring AOP的初步了解

 

然后在之前我们做DI配置好的Spring配置文件中进行配置

Spring AOP的初步了解

 

Spring AOP的初步了解

 

运行出现一个问题

Spring AOP的初步了解

 

是因为Spring注入的是接口,关联的是实现类。 这里注入了实现类,所以报异常,

Spring AOP的初步了解

 

我们改为true

Spring AOP的初步了解

 

查看结果运行正常,正确切入

Spring AOP的初步了解