13Spring_AOP编程(AspectJ)_后置通知
后置通知和前置通知差不多。最大的特点是因为后置通知是运行在目标方法之后的,所以他可以拿到目标方法的运行的结果。
给出案例:
案例结构图:
aaarticlea/png;base64,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" alt="" />
其实和上一篇的前置通知差不多,这里每个类就不做具体解释了。
第一步:
编写目标类:
package cn.itcast.spring.d_aspectj; //目标业务类
public class CustomerService { public int delete() {
System.out.println("this is delete");
return 1;
} }
第二步:
编写切面类
//切面类(内部可以写很多的Advice的方法)
public class MyAspect { //可以传两个参数,后置通知相比前置通知来时
//一个特点是,因为后置通知是运行在目标方法之后的,所以他可以拿到目标方法的运行的结果
public void afterReturning(JoinPoint joinPoint,Object result)
{
System.out.print("后置通知的运行"+result); } }
第三步:编写Spring配置文件
<!-- AspectJ AOP -->
<!-- 配置目标 -->
<bean id="CustomerService" class="cn.itcast.spring.d_aspectj.CustomerService"></bean>
<!-- 配置切面类 -->
<bean id="MyAspect" class="cn.itcast.spring.d_aspectj.MyAspect"></bean>
<aop:config>
<!-- ref引用切面类 -->
<aop:aspect ref="MyAspect"> <aop:pointcut expression="execution(* cn.itcast.spring.d_aspectj.CustomerService.*(..))" id="mypointcut2"/> <!-- 这个参数是配置返回的 必须和public void afterReturning(JoinPoint joinPoint,Object result)这个方法里面的 result一字不差-->
<aop:after-returning method="afterReturning" returning="result" pointcut-ref="mypointcut2" />
</aop:aspect>
第三步:编写测试类
@Test
public void testafter()
{System.out.print(customerService.getClass().getName());
customerService.delete(); }
输出结果:
this is delete
后置通知的运行1
看到没 !返回了目标函数的执行结果。
13Spring_AOP编程(AspectJ)_后置通知的更多相关文章
- 15Spring_AOP编程(AspectJ)_抛出通知
- Spring -- aop(面向切面编程),前置&后置&环绕&抛异常通知,引入通知,自动代理
1.概要 aop:面向方面编程.不改变源代码,还为类增加新的功能.(代理) 切面:实现的交叉功能. 通知:切面的实际实现(通知要做什么,怎么做). 连接点:应用程序执行过程期间,可以插入切面的地点. ...
- AOP 和 前置通知,后置通知
Spring 1.AOP:中文名称面向切面编程 2.英文名称:(Aspect Oriented Programming) 3.正常程序执行流程都是纵向执行流程 3.1 又叫面向切面编程,在原有纵向执行 ...
- [原创]java WEB学习笔记106:Spring学习---AOP的通知 :前置通知,后置通知,返回通知,异常通知,环绕通知
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- spring 切面 前置后置通知 环绕通知demo
环绕通知: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...
- Spring AOP前置通知和后置通知
Spring AOP AspectJ:Java社区里最完整最流行的AOP框架 在Spring2.0以上的版本中,可以使用基于AspectJ注解或基于XML配置的AOP 在Spring中启用Aspect ...
- spring学习 十 schema-based 前置后后置通知
spring 提供了 2 种 AOP 实现方式:(1)Schema-based ,(2)AspectJ Schema-based:每个通知都需要实现接口或类,配置 spring 配置文件时在<a ...
- Spring初学之xml实现AOP前置通知、后置通知、返回通知、异常通知等
实现两个整数的加减乘除,在每个方法执行前后打印日志. ArithmeticCalculator.java: package spring.aop.impl.xml; public interface ...
- Spring初学之annotation实现AOP前置通知、后置通知、返回通知、异常通知。
实现两个整数的加减乘除.在执行每个方法之前打印日志. ArithmeticCalculator.java: package spring.aop.impl; public interface Arit ...
随机推荐
- <SharePoint 2013 用户界面设计与品牌化>学习系列之---基础
什么是SharePoint界面与品牌化设计 这一章主要介绍了: 为什么要品牌化SharePoint 介绍一些内部和互联网的SharePoint网站 简单 中等 复杂的三种品牌化方式 简单难度: 普通用 ...
- MSCRM 2011/2013 单点登录 实现
通过自定义的ASP.NET程序,输入相关信息后,直接进入MSCRM 2011/2013中.
- Android—SQLITE数据库的设计和升降级
Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...
- iOS沙盒简单介绍
先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失.(这里也有一点点介绍) 看看苹果的沙盒目录: 再附一张苹果官方的图 一个iOS app操作都是在自己的沙 ...
- IOS Quartz2D 通过UIColor生成图片
普通生成 示例代码: //这里实现普通生成图片的方法 - (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , ); UIGra ...
- 干货-iOS、mac开源项目及库,以后我也会持续更新。
昨晚在网上看的干货,直接分享给大家了,觉得有用的,直接fork吧. https://github.com/Brances/TimLiu-iOS
- CoreAnimation-09-模拟时钟
效果图 实现思路 该示例通过隐式动画实现 表盘通过显示在imageView中的一张图片来实现 在表盘上绘制(时分秒)三条直线,分别位于不同的图层,且时针位于最下层,秒针位于最上层 设置直线为圆角 直线 ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
- Mac平台下启动MySQL到完全终止MySQL----终端八步走
1.选中Finder的情况下,快捷键进入搜索目录:/usr/local 然后进入mysql目录下: 2.右键 "从这里启动" 打开终端: 3.输入执行:./scripts/mysq ...
- 二维码扫描利用ZBar实现
上次是根据系统的属性自己封装的一个二维码扫描,这次给大家介绍一下基于ZBar集成的类似于QQ二维码扫描界面的二维码扫描的效果. ...