主页 > 网络编程 > Spring面向切面编程AOP的初步了解

Spring面向切面编程AOP的初步了解

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

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

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

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

办证接口Accreditation

委托办理人员类EntrustPerson

代理类ProxyAccreditation

测试类

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

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

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

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

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

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

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

首先准备好Jar包

我们编写一个日志类LoggerAop

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

运行出现一个问题

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

我们改为true

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

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!