SpringAop中AspectJ框架的切入点表达式
1.AspectJ简介
- AspectJ是一个基于Java语言的AOP框架
- Spring2.0以后新增了对AspectJ切点表达式支持
- @AspectJ 是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面
- 新版本Spring框架,建议使用AspectJ方式来开发AOP
- 主要用途:自定义开发
2.切入点表达式
execution()
用于描述方法
语法:execution(修饰符 返回值 包.类.方法名(参数) throws异常)
修饰符,一般省略
| public | 公共方法 |
| * | 任意 |
返回值,不能省略
| void | 返回没有值 |
| String | 返回值字符串 |
| * | 任意 |
包,[省略]
| com.gyf.crm | 固定包 |
| com.gyf.crm.*.service | crm包下面子包任意 (例如:com.gyf.crm.staff.service) |
| com.gyf.crm.. | crm包下面的所有子包(含自己) |
| com.gyf.crm.*.service.. | crm包下面任意子包,固定目录service,service目录任意包 |
类,[省略]
| UserServiceImpl | 指定类 |
| *Impl | 以Impl结尾 |
| User* | 以User开头 |
| * | 任意 |
方法名,不能省略
| addUser | 固定方法 |
| add* | 以add开头 |
| *Do | 以Do结尾 |
| * | 任意 |
(参数)
| () | 无参 |
| (int) | 一个整型 |
| (int ,int) | 两个 |
| (..) | 参数任意 |
throws ,可省略,一般不写。
案例1
execution(* com.gyf.crm.*.service..*.*(..))
案例2 或
<aop:pointcut expression="execution(* com.gyf.crm.service.*.*(..)) || execution(* com.gyf.*Do.*(..))" id="myPointCut"/>
within:
匹配包或子包中的方法(了解)
within(com.gyf.aop..*)
this:
匹配实现接口的代理对象中的方法(了解)
this(com.gyf.aop.user.UserDAO)
target:
匹配实现接口的目标对象中的方法(了解)
target(com.gyf.aop.user.UserDAO)
args:
匹配参数格式符合标准的方法(了解)
args(int,int)
bean(id)
对指定的bean所有的方法(了解)
bean('userServiceId')3.通知类型

- before:前置通知(应用:各种校验):在方法执行前执行,如果通知抛出异常,阻止方法运行
- afterReturning:后置通知(应用:常规数据处理):方法正常返回后执行,如果方法中抛出异常,通知无法执行,必须在方法执行后才执行,所以可以获得方法的返回值。
- around:环绕通知(应用:十分强大,可以做任何事情):方法执行前后分别执行,可以阻止方法的执行,必须手动执行目标方法
- afterThrowing:抛出异常通知(应用:包装异常信息):方法抛出异常后执行,如果方法没有抛出异常,无法执行
- after:最终通知(应用:清理现场):方法执行完毕后执行,无论方法中是否出现异常
到此这篇关于SpringAop中AspectJ框架的切入点表达式的文章就介绍到这了,更多相关AspectJ框架的切入点表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaWeb dbutils执行sql命令并遍历结果集时不能查到内容的原因分析
这篇文章主要介绍了JavaWeb dbutils执行sql命令并遍历结果集时不能查到内容的原因分析及简单处理方法,文中给大家介绍了javaweb中dbutils的使用,需要的朋友可以参考下2017-12-12
Eclipse配置tomcat发布路径的问题wtpwebapps解决办法
这篇文章主要介绍了Eclipse配置tomcat发布路径的问题wtpwebapps解决办法的相关资料,需要的朋友可以参考下2017-06-06
基于strict-origin-when-cross-origin问题的解决
这篇文章主要介绍了基于strict-origin-when-cross-origin问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)
文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Service及测试示例,通过使用注解如@RedisHash、@Cacheable等,可以简化操作并提高性能,文章还提供了关键注解的说明和测试验证方法,感兴趣的朋友跟随小编一起看看吧2025-11-11
Spring MVC温故而知新系列教程之请求映射RequestMapping注解
这篇文章主要介绍了Spring MVC温故而知新系列教程之请求映射RequestMapping注解的相关知识,文中给大家介绍了RequestMapping注解提供的几个属性及注解说明,感兴趣的朋友跟随脚本之家小编一起学习吧2018-05-05
解决IDEA中 Ctrl+ALT+V这个快捷键无法使用的情况
这篇文章主要介绍了解决IDEA中 Ctrl+ALT+V这个快捷键无法使用的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02


最新评论