Spring3.0中的前置通知、后置通知、环绕通知、异常通知
来源:互联网 发布:ubuntu怎么切换到root 编辑:程序博客网 时间:2024/05/22 14:28
观众类Audience~~
package com.jCuckoo.demo;import org.aspectj.lang.ProceedingJoinPoint;public class Audience {public void takeSeats() {System.out.println("----开演之前,请占座----");}public void turnOffCellPhones() {System.out.println("----开始之前,请关机----");}public void applaud() {System.out.println("****鼓掌,继续鼓掌。****");}public void turnOnCellPhones() {System.out.println("****演出结束,可以开机****");}public void demandRefund() {System.out.println("$$太熊了,退我票钱$$");}public void watchPerformance(ProceedingJoinPoint joinpoint) {try {System.out.println("oooooooo环绕通知开始oooooooo");long start = System.currentTimeMillis();joinpoint.proceed();long end = System.currentTimeMillis();System.out.println("oooooooo环绕通知结束oooooooo");System.out.println("演出耗时共计:" + (end - start)+ "毫秒。");} catch (Throwable t) {System.out.println("Boo!Wewantourmoneyback!");}}}
表演接口Performer
package com.jCuckoo.demo;public interface Performer {void perform()throws Exception;}
定义魔术师Juggler,实现表演接口
package com.jCuckoo.demo;public class Juggler implements Performer {private int beanBags = 3;public Juggler() {}public Juggler(int beanBags) {this.beanBags = beanBags;}public void perform() throws Exception {System.out.println("表演开始:魔术师欺骗了" + beanBags + "个游戏豆。");}}
spring的配置文档applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><bean id="juggler" class="com.jCuckoo.demo.Juggler"/><bean id="audience" class="com.jCuckoo.demo.Audience" /><aop:config><aop:aspect ref="audience"><aop:pointcut id="performance"expression="execution(* com.jCuckoo.demo.Performer.perform(..))" /><aop:before pointcut-ref="performance" method="takeSeats" /><aop:before pointcut-ref="performance" method="turnOffCellPhones" /><aop:after pointcut-ref="performance" method="turnOnCellPhones" /><aop:after-returning pointcut-ref="performance"method="applaud" /><aop:after-throwing pointcut-ref="performance"method="demandRefund" /><aop:around pointcut-ref="performance" method="watchPerformance"/></aop:aspect></aop:config></beans>
测试类,获取魔术师,并进行表演。
package com.jCuckoo.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.jCuckoo.demo.Performer;public class MainTest {/** * @param args */public static void main(String[] args) {ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");Performer performer=(Performer)ctx.getBean("juggler");try {performer.perform();} catch (Exception e) {e.printStackTrace();}}}
最终结果:
----开演之前,请占座----
----开始之前,请关机----
oooooooo环绕通知开始oooooooo
表演开始:魔术师欺骗了3个游戏豆。
****演出结束,可以开机****
****鼓掌,继续鼓掌。****
oooooooo环绕通知结束oooooooo
演出耗时共计:1毫秒。
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- Spring_17-19前置通知&后置通知&返回通知&异常通知&环绕通知
- spring_AOP前置通知&后置通知&返回通知&环绕通知
- 9、前置、后置、环绕通知
- spring的前置通知,后置通知,环绕通知
- Spring框架——AOP前置、后置、环绕、异常通知
- Spring 基于注解,实现 前置通知、后置通知、返回通知、 异常通知 、后置通知
- Spring aop 前置通知、后置通知、返回通知、 异常通知 、后置通知
- Spring -- aop(面向切面编程),前置&后置&环绕&抛异常通知,引入通知,自动代理
- AOP编程之后置通知、环绕通知、异常通知、引入通知
- 13.返回通知&异常通知&环绕通知
- Spring笔记4-AOP,前置通知,后置通知,返回通知,异常通知
- Spring AOP中的前置通知和后置通知详解
- spring中前置通知与后置通知
- Spring AOP前置通知和后置通知
- Spring前置通知与后置通知
- AOP的一些东西(事务的传播特性,前置,后置,环绕,异常 等各种通知)
- poj 2186(强连通分量)
- 彩信的通知短信PDU数据分析
- C++笔试常见题目
- JsonP和Json
- 流
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- How to use ftrace to trace your kernel module(使用Ftrace跟踪你的内核模块)
- 配置MyEclipse开发环境,并创建项目(史上最全)
- Java练手题一之基本语法
- 装饰模式
- java流量控制
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(一)在Matlab中高效设计滤波器
- 转换流
- ClassLoader原理