SSM框架之AOP基础

欢迎来到“雪碧聊技术”CSDN博客!

在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目心得。

让我们一同在Java的广阔天地中遨游,携手提升技术能力,共创美好未来!感谢您的关注与支持,期待在“雪碧聊技术”与您共同成长!

一、AOP概述

1、AOP介绍

AOP:Aspect Oriented Programming(面向切面编程),其实就是面向特定方法编程。

AOP的底层,是基于动态代理技术实现的。

2、使用场景

我们要统计,我们项目中,所有的service实现类中的,业务方法的执行时间。

  • 不使用AOP切面编程的场景

        此时我们需要手动的,在每一个业务方法内,添加统计执行耗时的代码(获取方法运行开始时间、获取方法运行结束时间、最后二者相减,得出运行耗时),此时代码非常繁琐、冗余,不优雅。

  • 使用AOP切面编程的场景

        如图:使用AOP切面编程后,我们不需要改动各个业务方法的代码,而是编写一个AOP切面类,就能实现和上面一样的效果。

3、AOP的实现原理:动态代理

动态代理是面向切面编程最主流的实现。而SpringAOP是Spring框架的高级技术,旨在管理bean对象的过程中,主要通过底层的动态代理机制,对特定的方法进行编程。

二、AOP快速入门

在不改动service层的代码前提下,统计每一个serviceImpl的执行耗时

1、导入依赖

2、编写AOP代码

3、发送请求,被请求到的业务方法,会在控制台输出耗时

三、拓展

1、其他使用场景

以上就是AOP切面编程的牛刀小试。

AOP切面编程还能应用于:

  • 记录日志操作
  • 权限控制
  • 事务管理

        举例:我们之前学到的事务管理,即:@Transactional注解,底层就是使用的AOP切面编程。逻辑是:在执行添加该注解的方法前,会开启事务;执行完毕后,会提交/回滚事务。

2、AOP切面编程的优点

  • 代码无侵入:并没有修改业务方法的原有代码,就实现了原有功能的增强/改变。
  • 减少重复代码
  • 提高开发效率
  • 维护方便:后期共性的代码需要改变,我们只需要修改对应的AOP类即可。

3、总结

①AOP是什么?

AOP:面向切面编程,即面向特定方法编程(仅仅是一种思想)。

可以在不改动原始方法的基础上,针对原始方法进行编程(功能的增强/改变)。

②SpringAOP是什么?

SpringAOP:基于动态代理技术,实现AOP思想。

AOP面向切面编程仅仅是一种思想,而动态代理技术是面向切面编程的最主流实现方式。

而SpringAOP底层就是基于动态代理技术,针对特定的方法进行编程。

③SpringAOP开发步骤

  • 导入AOP依赖
  • 编写AOP代码,针对特定的方法进行编程。

四、AOP核心概念

1、AOP核心概念

2、AOP执行流程

AOP底层用到了动态代理,生成目标对象的代理对象,对其做一个增强:增强逻辑就是通知的内容(即:上图的绿色部分(拓展内容)+橙色部分(原始方法))。

结语

以上就是AOP的基本内容,了解更多的AOP内容,请关注本博主的文章——“SSM框架之AOP进阶”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值