一起来学大数据|Spring之AOP操作,巧夺天功的切面技术
我们已经看了Spring的注解,体验了一把快速创建对象个属性注入。一起来学大数据|秒懂Spring注解,艾特一下你就明白,这么妙?
这篇我们学习的是spring中重要的AOP面向切面的思想。之后,我们便可以在不修改源代码的前提下实现方法的增强。
AOP技术简介
举个简单的例子,我们这里有一些功能模块,我们想要在这些功能上添加一个具体的完成时间,那么我们就要去修改所有功能模块的代码,并加入时间,这样的方式着实让人烦恼。
Spring框架中的AOP面向切面的技术帮助我们解决了这样的问题,其利用"横切"技术,能过深入到封装对象的内部,并且能够将我们关注的功能代码和业务逻辑代码分离出来,方便我们的操作。我们对切面进行的操作就是对方法的增强。
面向切面技术的实现,其实就是通过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操作还有这些:
一起来学大数据|秒懂Spring注解,艾特一下你就明白,这么妙?
明天我们学习使用注解的方式连接数据库以及spring的事务管理,最后的一点小知识。再后,我们开始学习SpringMVC。
个人原创,请多多指教。有帮助到大家的话,关注支持一下哟~
感谢坚持关注的朋友~
世界很大,幸好有你~
欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。
聚焦最新科技咨讯,探寻未来智能领域,我是女陶Mario