[技术分享][email protected] @After @AfterReturning @Around @AfterThrowing spring aop 的advise(通知)

今天在项目中成功实现了spring aop 。

@Before @After @AfterReturning @Around @AfterThrowing

这五个是实现spring aop常用的五个注解

相关的注解还有@Aspect @Component @PointCut

我在实践中发现:

[email protected] @After @AfterReturning @Around 这四个通知只有用一种,如果使用两种及以上会发生一些问题。

[email protected]@PointCut 注解的方法不会被执行,只起到了一个把切面表达式抽象出来的作用。

[email protected]是最常用的:

使用 JointPoint.getArgs()可以获取执行目标方法时传入的参数。(同@Before @After @Around @AfterThrowing)

@AfterReturning注解中的returning = "object"应该和形参的object名字一致 ,用来接收目标方法的返回值。

@AfterReturning(pointcut="execution(...) " returning="object")
public void afterReturning(JointPoint jp,Object object){      //注意这里的object 应该和returning="object"保持一致
      System.out.println(object); //object是目标方法返回的参数
      System.out.println(jp.getArgs() ); //通过这种方法可以获取目标方法的传入参数
}

下面是更具体的内容:

@Aspect
@Componet
public class myPointCut{

  @Before("execution(...) ")
  public void before(){
        System.out.println("前置通知:在目标方法执行前执行" );
  }

  @After("execution(...) ")
  public void after(){
        System.out.println("后置通知:在目标方法执行后执行" );
  }

  @Around("execution(...) ")
  public void around(){
        System.out.println("环绕通知:在目标方法执行前后都执行" );
  }

  @AfterReturning(pointcut="execution(...) " returning="object")
  public void afterReturning(JointPoint jp,Object object){      //注意这里的object 应该和returning="object"保持一致
        System.out.println(object); //object是目标方法返回的参数
        System.out.println(jp.getArgs() ); //通过这种方法可以获取目标方法的传入参数
  }

  @AfterThrowing("execution(...) ")
  public void afterThrowing(){
        System.out.println("异常通知:在目标方法发生异常时执行" );
  }

}
时间: 2024-08-08 01:04:29

[技术分享][email protected] @After @AfterReturning @Around @AfterThrowing spring aop 的advise(通知)的相关文章

[email protected] 深入学习之——初探spring mvc

一.简介 Spring MVC是Spring框架的最重要的模块之一,它构建于Spring IoC容器之上,大量使用容器的特性简化其配置.MVC模式消除了业务逻辑与UI的耦合.模式负责封装视图展示的应用数据:视图只显示数据,不包含任何业务逻辑:控制器负责接收用户请求并调用后端服务进行业务处理,处理之后,后端服务可能返回某些数据供视图显示.其核心思想是分离业务逻辑与UI,使系统能够独立修改,互不影响. Spring MVC应用,模式通常由服务层处理和持续层存储的领域对象组成.视图通常是用Java标准

Java面试--Spring技术要点--Spring AOP(面向切面编程)

33  Spring AOP的概念 面向切面的编程,是一种编程技术,是OOP(面向对象编程)的补充和完善.OOP的执行是一种从上往下的流程,并没有从左到右的关系.因此在OOP编程中,会有大量的重复代码.而AOP则是将这些与业务无关的重复代码抽取出来,然后再嵌入到业务代码当中.常见的应用有:权限管理.日志.事务管理等. 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行:二是采用静态织入的方式,引入特定的语法创建"方面"

Androidstudio项目分享到[email protected]托管

Androidstudio项目分享到[email protected]托管. 一.在OSC创建仓库 例如,创建一个AndroidStudy仓库,创建步骤如下: 输入仓库名称 点击创建按钮,就可以完成仓库的创建,如下图所示: 创建好之后,就可以拿到[email protected]仓库的HTTP连接 https://git.oschina.net/nycly/StudyGit.git 二.将项目托管到Git仓库 2.1.将项目变成一个Git项目 在AndroidStudio中创建一个Android

[email protected]淘宝 资料分享

[email protected]淘宝 在过去两年, 淘宝数据库团在MySQL.SSD.开源迈出了巨大的步伐,截至11年十月用户数据库库.商品库.交易库都已经稳定的运行在MySQL上,同时也经历的双十一,双十二的考验.这里我们将为大家分享背后的经验和教训. 本系列培训中"基础篇"会为大家介绍MySQL使用过程中的常见问题和解决方案.深入篇则侧重于分享更多MySQL底层解决问题解决的思路. 基础篇:  <MySQL索引与SQL调优>讲师:玄惭   (微博:玄惭) 本课程将从M

android studio怎么分享项目到[email&#160;protected]托管

鄙人初次发表,如有不妥之处,敬请批评指正 1,安装git. git下载地址:http://git-scm.com/downloads/ 2,在AS 的File->Settings->Version Control->Git 配置git.exe命令路径,如下图: 配置AS 的git 配置完成后,如果点击"Test" 按钮提示successfully,则说明配置成功. 3.在[email protected]上创建仓库,获取仓库地址. 现在这里我的仓库地址是:https:

IDEA 分享项目到 [email&#160;protected]

前提:新开项目,需要在 [email protected] 建立版本库管理. 1.当然是先在[email protected]上创建仓库,拿到[email protected]仓库的HTTP连接 https://git.oschina.net/*****/***.git 2.如果我们的本地项目是非git项目,那我们要先把它变成git项目 在 idea 中 VCS——Import into Version Control——Create Git Repository——选择你的本地项目 3.通过

IDEA 分享项目到 [email&#160;protected]/GitHub

前提:新开项目,需要在 [email protected] 建立版本库管理. 1.当然是先在[email protected]上创建仓库,拿到[email protected]仓库的HTTP连接 https://git.oschina.net/*****/***.git 2.如果我们的本地项目是非git项目,那我们要先把它变成git项目 在 idea 中 VCS--Import into Version Control--Create Git Repository--选择你的本地项目 3.通过

用 Java 技术创建 RESTful Web 服务/@[email&#160;protected]@PathParam

简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX-RS 的主要组件.本文用一个例子展示了一个企业如何使用 JAX-RS 内的功能以一种 Restful 的方式公开员工的联系信息. 背景 多年来,开发人员使用各种工具在其 Java 应用程序内创建 RESTful 服务.由于 REST 架构的简单性,主要需求 - 接收 HTTP 消息和头部的能力 -

开发者技术分享日:如何快速开发跨平台App

活动概况 时间:2014年12月20日14:00-17:00 地点:车库咖啡(北京市海淀西大街48号鑫鼎宾馆二层) 主办:APICloud 活动背景 在这个移动.云.大数据的时代背景下,人人口中都离不开“App”这个热门名词,然而如何降低App开发难度,减少成本,提高效率成为创业者和开发者尤为关注的内容.作为Web圈里的人想进来,但无奈技术门槛和人力成本太高:作为Native开发圈里的人又想出去,但无奈WebApp体验太差,面对当前的现状如何轻松突破App开发难题是这次沙龙交流的主题. 这次沙龙