当前位置: 首页 > news >正文

Spring框架中的核心技术之AOP

目录

1. 什么是AOP?

2. 实现AOP技术的框架有哪些?

2.1 Spring框架中的AOP技术

2.2 Aspectj框架

2.3 小结

3. Aspectj框架中的使用AOP的方式

4. Aspectj框架中使用aop时候的一些术语

5. AOP中的注解的详细解释

 5.1 @Aspect

 5.2  @Before

 5.3 @AfterReturning

 5.4 @Around

 5.5 @AfterThrowing

 5.6 @After

 5.7 @PointCut


1. 什么是AOP?

答:AOP即面向切面编程,是Aspect Orient Programming,本质上是对动态代理步骤的规范化。

2. 实现AOP技术的框架有哪些?

  • Spring框架
  • Aspectj框架

2.1 Spring框架中的AOP技术

Spring主要在事务处理的时候使用AOP,但是在实际项目开发中,由于Spring自身实现的AOP技术过于笨重,所以我们也用的很少。

2.2 Aspectj框架

首先Aspectj是一个专门做AOP的框架,因此它就显得更专业,用的更广泛,Aspectj框架是Eclipse的一个开源项目。

2.3 小结

因此我们在开发的时候,虽然使用的是Spring框架,但是我们却是在Spring框架中集成的是Aspectj框架的AOP技术,因此我们记得要在Spring的pom文件中添加spring-aspectj依赖。

3. Aspectj框架中的使用AOP的方式

  • XML配置文件的方式(常用于事务)
  • 注解的方式(常用)

4. Aspectj框架中使用aop时候的一些术语

切面:我们要给原始的方法重增加的一个新的方法,这个新增加的方法就叫做切面,比如我们给已有的方法增加日志,事务等功能;此时这个日志方法,事务方法就叫做切面。

JoinPot:即连接点,它是目标类中的一个方法,其实就是最原始的方法,谁被添加新的方法,谁就是连接点。

PoinCut:即切入点,即目标类中的所有方法。

Advice:也叫做“通知”,“增强”,(这里是重点,共有5个注解)

切面的执行位置:即对目标类中的那些方法进行增强,这里会使用切面表达式。(重点)。

5. AOP中的注解的详细解释

5.1 @Aspect

5.2  @Before

 5.3 @AfterReturning

5.4 @Around

5.5 @AfterThrowing

5.6 @After

 5.7 @PointCut

 总结:

以上就是Spring框架中的AOP技术最核心常用的内容,可以很清楚的看到,使用了AOP之后,我们对动态代理的规范化更加的标准,但是这也要求你对最原始的JDK动态代理要有更深的认识.

相关文章:

  • 用户体验与响应式字体二三事|rem单位与flexible.js、rpx单位与css媒体查询
  • 408 | 【2009年】计算机统考真题 自用回顾知识点整理
  • MyMusic 重点实现
  • 云计算敏捷团队的 10 个最佳实践工具
  • 阿里面试官终于把多年总结的Java八股文PDF版分享出来了,帮我金九银十拿下4个offer
  • java毕业设计超市管理系统Mybatis+系统+数据库+调试部署
  • 计算机网络 第 1 章 计算机网络概述
  • 如何转换图片格式?教你三招一键轻松转换图片格式
  • 【从小白到大白04】Linux基本权限
  • Unity_飞机大战_防止单例随场景销毁和跨场景两个物体脚本问题_自动加载物体挂载脚本的两种方式
  • taro 兼容支付宝小程序和微信小程序<七>-- 上传图片及图片转base64
  • 【附源码】计算机毕业设计SSM汽车交易平台
  • 购买域名-腾讯云
  • 【Linux练习生】Linux多线程
  • JavavEE中网络编程Socket套接字Ⅱ(TCP)
  • CSS实用技巧
  • eclipse(luna)创建web工程
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript HTML DOM
  • JavaScript实现分页效果
  • JS+CSS实现数字滚动
  • Js基础知识(一) - 变量
  • Laravel 菜鸟晋级之路
  • Terraform入门 - 1. 安装Terraform
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 闭包--闭包作用之保存(一)
  • 机器学习中为什么要做归一化normalization
  • 两列自适应布局方案整理
  • 前端js -- this指向总结。
  • 如何设计一个比特币钱包服务
  • 如何使用 JavaScript 解析 URL
  • 深度解析利用ES6进行Promise封装总结
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • #include到底该写在哪
  • (007)XHTML文档之标题——h1~h6
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (LeetCode 49)Anagrams
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (十一)c52学习之旅-动态数码管
  • (算法)Travel Information Center
  • (一一四)第九章编程练习
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)一些感悟
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET Remoting学习笔记(三)信道
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net8 Blazor 尝鲜
  • .net下的富文本编辑器FCKeditor的配置方法
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .sh 的运行