温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring AOP操作的相关术语及环境怎么配置

发布时间:2022-05-30 13:39:07 来源:亿速云 阅读:113 作者:iii 栏目:开发技术

这篇“Spring AOP操作的相关术语及环境怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring AOP操作的相关术语及环境怎么配置”文章吧。

一、常用术语

在后续使用 AOP 中会用到几个专业术语:连接点、切入点、通知(增强)、切面。

分别是什么意思?

来看这里有个 User 类,里面有增删改查 4 个方法。

public class User {
    public void add() {}
    public void delete() {}
    public void update() {}
    public void select() {}
}

以此辅助说明一下上述 4 个术语:

连接点:类中可以被增强的方法,就叫做连接点。比如上面的 4 个方法都可以被增强,都可以称为连接点。 

切入点:实际被真正增强的方法,称为切入点。比如上面的 4 个方法,只增强了 add() 方法,这个就是切入点。 

通知(增强):实际上增强的逻辑部分,称为通知。比如我给方法增加了日志的输出处理,那这部分逻辑就称为通知或者增强。 

切面:把通知(增强)应用到切入点的过程,就叫切面,指的是一个动作。 

其中,关于通知(增强),有 5 种类型:

  • 前置通知:被增强的方法之前执行。

  • 后置通知:被增强的方法之后执行。

  • 环绕通知:被增强的方法前后都执行。

  • 异常通知:被增强的方法出现异常时执行。

  • 最终通知:不管被增强的方法有没有异常都会执行。

二、准备工作

Spring 框架一般基于 AspectJ 实现 AOP 操作。

AspectJ 是一个独立的框架,不是 Spring 的组成部分。为了便捷,把二者结合起来使用。

那么基于 AspectJ 实现 AOP,可以有 2 种方式:

  • 基于 xml 配置文件

  • 基于注解方式。

一般为了便捷,使用注解方式。

1. 引入依赖

需要 jar 包如下:

Spring AOP操作的相关术语及环境怎么配置

2. 切入点表达式

作用是:知道要对哪个类里面的哪个方法进行增强。

结构:

execution([权限修饰符][返回类型][类全路径][方法名称]([参数列表]))

比如,我有个类 User 在 package com.pingguo.spring5.dao;里。

(1)示例1

我要增强这个类下面的 add() 方法,表达式这么写:

execution(* com.pingguo.spring5.User.add(..))

  • *号:代表所有类型的修饰符。

  • 返回类型:可以不写

  • 类全路径:com.pingguo.spring5

  • 方法:前面加 .add()

  • 参数:括号里的 .. 表示方法中的参数

(2)示例2

我要增强这个类下面的所有方法,表达式这么写:

execution(* com.pingguo.spring5.User.*(..))

这里就是把方法用 * 号替换掉。

(3)示例3我要增强包com.pingguo.spring5下的所有类的所有方法:

execution(* com.pingguo.spring5.*.*(..))

仍然是用*替换对应的地方。

以上就是关于“Spring AOP操作的相关术语及环境怎么配置”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI