`
Hermosa_Young
  • 浏览: 249648 次
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

做了个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>

 

运行结果,如下图所示



另附源码

  • 大小: 96 KB
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics