Spring之AOP操作,巧夺天功的切面技术
Posted 360linker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring之AOP操作,巧夺天功的切面技术相关的知识,希望对你有一定的参考价值。
这篇我们学习的是spring中重要的AOP面向切面的思想。之后,我们便可以在不修改源代码的前提下实现方法的增强。
AOP技术简介
举个简单的例子,我们这里有一些功能模块,我们想要在这些功能上添加一个具体的完成时间,那么我们就要去修改所有功能模块的代码,并加入时间,这样的方式着实让人烦恼。
Spring框架中的AOP面向切面的技术帮助我们解决了这样的问题,其利用"横切"技术,能过深入到封装对象的内部,并且能够将我们关注的功能代码和业务逻辑代码分离出来,方便我们的操作。我们对切面进行的操作就是对方法的增强。
面向切面技术的实现,其实就是通过java的动态代理来实现的,我们之前有所已经学习。
一起来学大数据|Java中的动态代理,重中之重的进阶基石
AOP重要的操作术语
切入点(Pointcut):我们将类中实际被增强的方法叫做切入点
切面(Aspect):我们把方法的增强拓展应用到具体方法上的这个过程叫做切面
通知/增强(Advice):我们将对方法增强的逻辑,称为增强或者通知
前置通知:方法执行前运行
后置通知:方法之后后运行
异常通知:方法出现异常后执行
最终通知:不管方法是否能正常运行,都会在最后执行
环绕通知:运行在方法前和方法后
Spring的AOP操作
在实际工作中,我们常常使用的注解方式实现aop操作,而很少使用xml配置文件的方式。接下来,我们就以十分简单的注解为例来进行说明。
第一步:导入jar包
同样的,我们将除了基本jar包以外的与aop相关的jar加入lib中。
第二步:创键配置文件
我们首先在src下面创建一个applicationContext.xml的配置文件。
1.加入约束
每个模块有每个模块的约束,等我们将讲完这些,后面我们学习综合案例的时候,就会将所有的约束都加在一起。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
这些都是固定格式,没必要去记。
2.开启aop操作
最后的效果图如下:
第三步:创建对象
具体的架构是这个样子的,user是我的普通方法,我们在MyUser中实现我对方法的增强,最后我们在使用TestAop对我们的方法进行测试。
User类中的方法如下:
我们通过注解名称来实现对方法的增强,我们再创建一个MyUser类,用来增强user类方法。
1.给User类的show()方法做一个前置增强
2.给User类的delete()方法做了一个后置增强
3.给User类的add()方法做一个环绕增强
4.更新方法的异常通知
5.最终增强
测试其中一个方法,环绕增强,我们可以发现达到我们的目的。
这就是我们今天学习的切面,5个增强方法,我们在添加@注解名称后可以实现对原有的方法增强,实现功能的拓展。
以上是关于Spring之AOP操作,巧夺天功的切面技术的主要内容,如果未能解决你的问题,请参考以下文章