做了个Spring Aop的Demo,记录一下。
在Sping Bean的基础上,增加“观众”的角色,观众在观看表演之前,要就坐,关掉手机,观看之后,鼓掌或者对表演不满,要求退票。
package com.audience; public class Audience { public void takeSeat() { System.out.println("take seat"); } public void turnOffPhone() { System.out.println("turn off phone"); } public void applaud() { System.out.println("applaud"); } public void demandRefund() { System.out.println("demand refund"); } }
配置文件,如下所示
<?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:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="duke" class="com.performer.service.impl.PoeticJuggler"> <constructor-arg value="15"></constructor-arg> <constructor-arg ref="sonnet"></constructor-arg> </bean> <bean id="jake" class="com.performer.service.impl.Instrumentalist" p:song = "little star" p:instrument-ref = "piano" /> <bean id="audience" class="com.audience.Audience"></bean> <bean id="sonnet" class="com.poem.service.impl.Sonnet"></bean> <bean id="piano" class="com.instrument.service.impl.Piano"></bean> <aop:config> <aop:aspect ref="audience"> <aop:pointcut expression="execution(* *.perform(..))" id="a"/> <aop:before pointcut-ref="a" method="takeSeat"/> <aop:before pointcut-ref="a" method="turnOffPhone"/> <aop:after-returning pointcut-ref="a" method="applaud"/> <aop:after-throwing pointcut-ref="a" method="demandRefund"/> </aop:aspect> </aop:config> </beans>
运行结果,如下图所示
另附源码
相关推荐
1、spring切入点 2、spring前置织入,传入参数处理 3、spring后置织入,传入参数处理 4、环绕织入,参数及返回值处理 5、返回后织入,返回值处理 6、异常织入,异常处理 maven环境下,测试用例可直接运行
spring aop demo 通过注解和配置文件的两种实现方式 包含jar包 下载直接运行
spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo
spring aop的demo spring aop的demo
Spring AOP简单demo 入门级的 advice
spring3.2.8使用aop的简单实例
struts2+spring2.5用AOP记录操作日志,带自定义参数aop的例子
nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator]: ...
NULL 博文链接:https://744722813.iteye.com/blog/2216446
如何掌握SPRINGAOP DEMO中有详细的处理过程
Spring aop demo
NULL 博文链接:https://huihai.iteye.com/blog/858769
想学习Spring的AOP技术的同学可以查考一下这个DEMO 想必能让你收获更多
基于注解与 XML 配置文件两种形式的 AOP demo。 基于 xml 配置文件的 aop 管理 ```xml <!-- 配置切面的bean --> <bean id="loggingAspect" class="com.jas.aop.xml.LoggingAspect"/> <aop:config> <!...
SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo
spring aop hessian 基础demo 部署即可运行
spring aop 采用注解定义以及xml定义,在java四层结构中无缝实现
跟开涛学习SpringAop之后的一些测试代码,也是这篇帖子测试代码的补充https://my.oschina.net/longfong/blog/805410