1.切入点的表达式

表达式格式:

execution([修饰符] 返回值类型 包名.类名.方法名(参数))

其他的代替:

<!-- 完全指定一个方法 -->
<!-- <aop:before method="log" pointcut="execution(public void com.spring.demo1.UserServiceImpl.save())"/> --> <!-- 修饰符可以不写,不是必要出现的 -->
<!-- <aop:before method="log" pointcut="execution(void com.spring.demo1.UserServiceImpl.save())"/> --> <!-- 返回值类型必须写,可以用【*】代替 -->
<!-- <aop:before method="log" pointcut="execution(* com.spring.demo1.UserServiceImpl.save())"/> --> <!-- 包名必须写,可以用【*】代替 -->
<!-- <aop:before method="log" pointcut="execution(* *.spring.demo1.UserServiceImpl.save())"/> --> <!-- 任意包结构,【*..*】 -->
<!-- <aop:before method="log" pointcut="execution(* *..*.UserServiceImpl.save())"/> --> <!-- 类必须写,可以用【*】代替 -->
<!-- <aop:before method="log" pointcut="execution(* *..*.*ServiceImpl.save())"/> --> <!-- 方法必须写,可以用【*】代替 -->
<!-- <aop:before method="log" pointcut="execution(* *..*.*ServiceImpl.save*())"/> --> <!-- 参数必须写,【*】代表一个参数,【..】代表任意参数 -->
<!-- <aop:before method="log" pointcut="execution(* *..*.*ServiceImpl.save*(..))"/> -->

2.AOP通知类型

1. 前置通知:
      * 在目标类的方法执行之前执行。
      * 配置文件信息:

<aop:after method="before" pointcut-ref="myPointcut3"/>

* 应用:可以对方法的参数来做校验

2. 最终通知:
        * 在目标类的方法执行之后执行,如果程序出现了异常,最终通知也会执行。
        * 在配置文件中编写具体的配置:

<aop:after method="after" pointcut-ref="myPointcut3"/>

* 应用:例如像释放资源

3. 后置通知:
        * 方法正常执行后的通知。        
        * 在配置文件中编写具体的配置:

<aop:after-returning method="afterReturning" pointcut-ref="myPointcut2"/>

* 应用:可以修改方法的返回值

4. 异常抛出通知:
        * 在抛出异常后通知
        * 在配置文件中编写具体的配置:

<aop:after-throwing method="afterThorwing" pointcut-ref="myPointcut3"/>

* 应用:包装异常的信息

5. 环绕通知:
        * 方法的执行前后执行。
        * 在配置文件中编写具体的配置:

<aop:around method="around" pointcut-ref="myPointcut2"/>

* 要注意:目标的方法默认不执行,需要使用ProceedingJoinPoint对来让目标对象的方法执行。

    public void around(ProceedingJoinPoint joinPoint){
System.out.println("环绕通知1...");
try {
// 手动让目标对象的方法去执行
joinPoint.proceed();
} catch (Throwable e) {
e.printStackTrace();
}
System.out.println("环绕通知2...");
}

转载请跟随-注:(https://www.cnblogs.com/NEWHOM/p/6803307.html)

分享知识-快乐自己:Spring切入点的表达式和通知类型的更多相关文章

  1. 7.Spring切入点的表达式和通知类型

    1.切入点的表达式 表达式格式: execution([修饰符] 返回值类型 包名.类名.方法名(参数)) 其他的代替: <!-- 完全指定一个方法 --> <!-- <aop ...

  2. JAVA框架 Spring AOP--切入点表达式和通知类型

    一:AOP的相关术语: 1)Joinpoint(连接点):所谓的连接点是指那些可以被拦截点,在spring中这些点是指方法.因为在spring中支持方法类型的连接点. 2)Pointcut(切入点): ...

  3. spring aop的五种通知类型

    昨天在腾讯课堂看springboot的视频,老师随口提问,尼玛竟然回答错了.特此记录! 问题: Spring web项目如果程序启动时出现异常,调用的是aop中哪类通知? 正确答案是: 异常返回通知. ...

  4. spring aop 的五种通知类型

    本文转自:http://blog.csdn.net/cqabl/article/details/46965197 spring aop通知(advice)分成五类: 前置通知[Before advic ...

  5. spring.net AOP通知类型

    上篇介绍了spring.net AOP的基本实现,其中有说到通知类型,首先在这里补充解释一下.最后出一个异常通知的实例,因为他的实现和别的通知有些不一样. 1.拦截环绕通知:在Spring中最基础的通 ...

  6. spring 切入点表达式

    spring表达式有多种的指示符,如: 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: exe ...

  7. Spring的通知类型,切入表达式写法

    转载自  https://www.cnblogs.com/ltfxy/p/9882697.html Spring中通知类型: 前置通知:目标方法执行之前进行操作,可以获得切入点信息 后置通知: 目标方 ...

  8. 十三 Spring的通知类型,切入表达式写法

    Spring中通知类型: 前置通知:目标方法执行之前进行操作,可以获得切入点信息 后置通知: 目标方法执行之后进行操作,可以获得方法的返回值 环绕通知:在目标方法执行之前和之后进行操作,可以终止目标方 ...

  9. Java开发学习(十六)----AOP切入点表达式及五种通知类型解析

    一.AOP切入点表达式 对于AOP中切入点表达式,总共有三个大的方面,分别是语法格式.通配符和书写技巧. 1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增 ...

随机推荐

  1. AI关注的网址

    中科院计算技术研究所博士招生:http://admission.ucas.ac.cn/info/ZhaoshengDanweiDetail/9adf9e50-424b-44c8-b2dc-900ef9 ...

  2. 如何开启Apache Rewrite功能

    一.Ubuntu默认未开启Rewrite支持 apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便.下面看一下如何开启Rewrite模块,当用户需使用301重定向. ...

  3. 更改Mysql 密码的4种方法(转)

    原文:http://www.jb51.net/article/39454.htm 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password f ...

  4. jvm 调优参数

    -server -Xms6000M -Xmx6000M -Xmn500M -XX:PermSize=500M -XX:MaxPermSize=500M -XX:SurvivorRatio=65536 ...

  5. Spring Cloud 微服务五:Spring cloud gateway限流

    前言:在互联网应用中,特别是电商,高并发的场景非常多,比如:秒杀.抢购.双11等,在开始时间点会使流量爆发式地涌入,如果对网络流量不加控制很有可能造成后台实例资源耗尽.限流是指通过指定的策略削减流量, ...

  6. jquery基础研究学习【HTML】

    jQuery HTMLjQuery 捕获jQuery 设置jQuery 添加元素jQuery 删除元素jQuery CSS 类jQuery css() 方法jQuery 尺寸 笔记:

  7. 百度地图SnapshotReadyCallback截屏

    今天碰到了地图截图的功能,不太会,查查资料知道怎么弄了,跟大家分享一下 直接上代码,弄了一个方法,将截取的图片上传至服务器,返回给我们图片路径 //获取地图截图 private void getscr ...

  8. android菜鸟学习笔记22----ContentProvider(二)ContentObserver的简单使用

    现在有这样一个应用A通过ContentProvider提供自己的数据给其他应用,应用B通过ContentResolver获取应用A中提供的数据,并将其展示在ListView中,而应用C通过Conten ...

  9. web前端开发-Ajax(2)

    前面的一篇博文简单的简绍了Ajax基于jQuery的用法,接下来要对Ajax做进一步的介绍,Ajax请求大致可以通过三种方式发送:原生Ajax,jQuery,伪Ajax.1.原生Ajax: 由于Aja ...

  10. 导入android sdk samples工程报错"did you mean to use @+id instead of @+android:id?"

    导入“D:\adt-bundle-windows-x86_64-20140702\sdk\samples\android-15”中的工程报错 did you mean to use @+id inst ...