我的编程空间,编程开发者的网络收藏夹
学习永远不晚

spring aop execution表达式的用法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

spring aop execution表达式的用法是什么

本篇内容主要讲解“spring aop execution表达式的用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring aop execution表达式的用法是什么”吧!

1.切所有controller下的请求

项目结构

spring aop execution表达式的用法是什么

任意公共方法的执行:

execution(public * (…))

##public可以省略, 第一个 代表方法的任意返回值 第二个参数代表任意包+类+方法 (…)任意参数

配置切入点:

@Pointcut("execution(* com.gcol.qy.web.system.controller..*.*(..))")public void conPoint(){}

表达式结构解释如下:

标识符含义
execution()表达式的主体
第一个“ * ”符号表示返回值的类型任意
com.gcol.qy.web.system.controllerAOP所切的服务的包名,即,需要进行横切的业务类
包名后面的“..”表示当前包及子包
第二个“*”表示类名,*即所有类
.*(..)表示任何方法名,括号表示参数,两个点表示任何参数类型

如果需要多个切入点可以用 || 符号 如下:

@Pointcut("execution(* com.gcol.qy.web.system.controller..*.*(..)) || execution(* com.gcol.qy.web.system.api..*.*(..))")public void conPoint(){}

xml 配置

 <!-- 切换到获取kpi信息的oracle数据库 --> <aop:config>  <aop:aspect id="dataSourceAspect2" ref="dataSourceInterceptor">   <aop:pointcut id="daoThree" expression="execution(* com.gcol.qy.web.system.service.kpi.KpiServiceImpl.*(..))   || execution(*  com.gcol.qy.web.system.service.team.TeamServiceImpl.getFamilyPremiun(..))   || execution(*  com.gcol.qy.web.system.service.team.TeamServiceImpl.getSalesmanPremium(..))"/>   <aop:before pointcut-ref="daoThree" method="setDataSourceKpi"/>  </aop:aspect> </aop:config>

ref=“dataSourceInterceptor” 执行的方法类。

Spring中execution语法

语法格式

execution(修饰符 返回类型 切入点类 切入点方法(参数) 异常抛出)

  • 修饰符: 可选,支持通配符,(public/private/protected)

  • 返回类型: 必填,支持通配符,可以使用 * 来匹配所有的返回值类型

  • 切入点类: 可选,支持通配符,指定切入点类

  • 切入点方法: 必填,支持通配符,指定要匹配的方法名,可以使用"*"通配符来匹配所有方法

  • 参数: 若无可不填,指定方法声明中的形参列表,支持两个通配符,即*和…

其中*代表一个任意类型的参数,而…代表零个或多个任意类型的参数

  • () 匹配一个不接受任何参数的方法

  • (…) 匹配一个接受任意数量参数的方法,可以是零个或多个

  • (*) 匹配一个接受一个任何类型的参数的方法,只能是一个

  • (*,String) 匹配一个接受两个参数的方法,其中第一个参数是任意类型,第二个参数必须是String类型

异常抛出: 可选,支持通配符,指定方法声明抛出的异常

常用实例

<!-- 【1、拦截所有public方法】 --><aop:pointcut expression="execution(public * *(..))" id="pt"/>  <!-- 【2、拦截所有save开头的方法】 --><aop:pointcut expression="execution(* save*(..))" id="pt"/> <!-- 【3、拦截指定类的指定方法, 拦截时候一定要定位到方法】 --><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/><!-- 【4、拦截指定类的所有方法】 --><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.*(..))" id="pt"/><!-- 【5、拦截指定包,以及其自包下所有类的所有方法】 --><aop:pointcut expression="execution(* com..*.*(..))" id="pt"/><!-- 【6、多条件】 --><!-- 或:||   or --><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) || execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) or execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><!-- 且:&&   and -->  <!-- 语法虽然没错,但,没意义 --><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) && execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) and execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><!-- 【7、取非值:not  !  不拦截指定的规则,拦截除此之外的所有类的方法】 --><aop:pointcut expression="!execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/> <!-- 注意not前必须有空格 --><aop:pointcut expression=" not execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/>

到此,相信大家对“spring aop execution表达式的用法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

spring aop execution表达式的用法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

spring aop execution表达式的用法是什么

本篇内容主要讲解“spring aop execution表达式的用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring aop execution表达式的用法是什么”吧!1.切所
2023-06-20

java lambda表达式的用法是什么

Lambda表达式是Java 8中引入的一种新的语法特性,用于简化函数式编程的代码编写。Lambda表达式可以替代匿名内部类的使用,使得代码更加简洁、可读性更高。Lambda表达式的用法包括以下几个方面:1. 替代匿名内部类:Lambda表
2023-09-26

Access中表达式的用法是什么

Access中的表达式用于计算和组合数据,以创建新的数据或控制数据的呈现方式。表达式可以在查询、表单、报告和宏中使用。以下是一些常见的表达式用法:1. 计算字段:可以使用算术运算符(如+、-、*、/)和函数(如Sum、Avg、Count)来
2023-09-28

Spring-AOP 静态正则表达式方法怎么匹配切面

小编给大家分享一下Spring-AOP 静态正则表达式方法怎么匹配切面,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!概述在Spring-AOP 静态普通方法名匹配切面案例中 StaticMethodMatcherPoint
2023-06-20

正则表达式grep的用法是什么

grep命令是一个在Linux和Unix系统中常用的命令,用于在文件或标准输入中查找符合给定模式的内容,并将其输出到标准输出。grep命令的基本用法是:grep [选项] 模式 文件名其中,选项常用的有:-i:忽略大小写-v:反向选择
正则表达式grep的用法是什么
2024-03-08

Java中Lambda表达式用法是什么

本篇文章为大家展示了Java中Lambda表达式用法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Lambdalambda是一个匿名函数,我们可以把lambda表达式理解为是一段可以传递的代码
2023-06-22

python lambda表达式的简单用法是什么

python lambda表达式的简单用法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python lambda表达式简单用法习条件运算时,对于简单的 if els
2023-06-04

cron表达式的作用是什么

cron表达式用于指定定时任务的执行时间。它是一个字符串,由6个或7个字段组成,分别表示秒、分钟、小时、日期、月份、星期和年份(可选)。每个字段都有一些特定的取值范围和符号,用于确定任务的执行时间点。通过设置不同的字段值,可以精确地指定任务
2023-08-12

SpringBoot  AOP @Pointcut切入点表达式排除某些类方式是什么

这篇文章主要介绍“SpringBoot AOP @Pointcut切入点表达式排除某些类方式是什么”,在日常操作中,相信很多人在SpringBoot AOP @Pointcut切入点表达式排除某些类方式是什么问题上存在疑惑,小编查阅了各
2023-06-21

java lambda表达式的语法格式是什么

Java的Lambda表达式的语法格式如下:(parameter1, parameter2, ...) -> { // 代码块 // 可以包含一系列的语句}其中,参数列表(parameter1, parameter2, ...)
2023-10-10

JS正则表达式的使用方法是什么

本篇内容主要讲解“JS正则表达式的使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS正则表达式的使用方法是什么”吧!测试字符串是否合规这种特性常被用来检测前端输入的字段是否符合要求
2023-07-06

Java正则表达式的基本用法是什么

Java正则表达式是一种强大的字符串匹配工具,用于匹配和操作字符串的模式。它可以用于搜索、替换、验证和提取字符串中的特定模式。Java正则表达式的基本用法包括以下几个方面:1. 匹配:使用正则表达式可以检查一个字符串是否与指定的模式匹配。可
2023-08-12

java8中lambda表达式的语法是什么

这篇文章主要介绍“java8中lambda表达式的语法是什么”,在日常操作中,相信很多人在java8中lambda表达式的语法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java8中lambda表达式
2023-07-02

Python正则表达式的使用方法是什么

这篇文章主要讲解了“Python正则表达式的使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python正则表达式的使用方法是什么”吧!什么是正则表达式?简而言之,正则表达式(r
2023-06-16

linux正则表达式的语法是什么

Linux正则表达式的语法是基于POSIX标准的正则表达式(Regular Expression)语法。其语法主要包括以下部分:1. 字符匹配: - 普通字符:匹配自身字符。 - 元字符:具有特殊含义的字符,如`.`、`*`、`+`
2023-09-07

perl正则表达式的语法是什么

Perl正则表达式的语法如下:1. 普通字符:匹配与其自身相等的字符。2. 元字符:具有特殊含义的字符,如 `.`、`*`、`+`、`?`、`|`、`(`、`)`、`[`、`]`、`{`、`}` 等。3. 字符类:用方括号 `[ ]` 包围
2023-09-26

java lambda表达式的作用是什么

Java lambda表达式的作用是简化代码编写,提高代码的可读性和可维护性。lambda表达式是一种匿名函数,可以作为参数传递给方法或存储在变量中。它可以替代某些使用匿名内部类的情况,使代码更加简洁和易于理解。Lambda表达式的使用可以
2023-09-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录