码迷,mamicode.com
首页 > 其他好文 > 详细

笔记10 在XML中声明切面(1)

时间:2018-04-19 23:58:00      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:instance   ref   form   png   express   sci   org   ack   bsp   

1.无注解的Audience

 1 package XMLconcert;
 2 
 3 public class Audience {
 4 
 5     public void silenceCellPhones() {
 6         System.out.println("Silencing cell phone");
 7     }
 8 
 9     public void takeSeats() {
10         System.out.println("Taking seats");
11     }
12 
13     public void applause() {
14         System.out.println("CLAP CLAP CLAP");
15     }
16 
17     public void demandRefund() {
18         System.out.println("Demanding a refund");
19     }
20 
21 }

2.通过XML将无注解的Audience声明为切面

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xmlns:tx="http://www.springframework.org/schema/tx"
 6     xmlns:context="http://www.springframework.org/schema/context"
 7     xmlns:c="http://www.springframework.org/schema/c"
 8     xsi:schemaLocation="
 9    http://www.springframework.org/schema/beans
10    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
11    http://www.springframework.org/schema/aop
12    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
13    http://www.springframework.org/schema/tx
14    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
15    http://www.springframework.org/schema/context     
16    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
17         <bean id="audience" class="XMLconcert.Audience"></bean>
18         <bean class="XMLconcert.Classcial"></bean>
19           <aop:config>
20                   <aop:aspect ref="audience">
21                       <aop:before pointcut="execution(* XMLconcert.Performance.perform(..))" method="silenceCellPhones"/>
22                       <aop:before pointcut="execution(* XMLconcert.Performance.perform(..))" method="takeSeats"/>
23                       <aop:after-returning pointcut="execution(* XMLconcert.Performance.perform(..))" method="applause"/>
24                       <aop:after-throwing pointcut="execution(* XMLconcert.Performance.perform(..))" method="demandRefund"/>
25                   </aop:aspect>
26           </aop:config>
27            
28    </beans>

或者

 

1           <aop:config>
2                   <aop:aspect ref="audience">
3                       <aop:pointcut expression="execution(* XMLconcert.Performance.perform(..))" id="performance"/>
4                       <aop:before pointcut-ref="performance" method="silenceCellPhones"/>
5                       <aop:before pointcut-ref="performance" method="takeSeats"/>
6                       <aop:after-returning pointcut-ref="performance" method="applause"/>
7                       <aop:after-throwing pointcut-ref="performance" method="demandRefund"/>
8                   </aop:aspect>
9           </aop:config>

 

或者

替换Audience中的四个方法

 

 1     public void watchPerformance(ProceedingJoinPoint jp) {
 2         try {
 3             System.out.println("Silencing cell phone");
 4             System.out.println("Taking seats");
 5             jp.proceed();
 6             System.out.println("CLAP CLAP CLAP");
 7         } catch (Throwable e) {
 8             System.out.println("Demanding a refund");
 9         }
10     }

 

 

1           <aop:config>
2                   <aop:aspect ref="audience">
3                       <aop:pointcut expression="execution(* XMLconcert.Performance.perform(..))" id="performance"/>
4                       <aop:around method="watchPerformance" pointcut-ref="performance"/>
5                   </aop:aspect>
6           </aop:config>

 

3.结果

技术分享图片

 

笔记10 在XML中声明切面(1)

标签:instance   ref   form   png   express   sci   org   ack   bsp   

原文地址:https://www.cnblogs.com/lyj-gyq/p/8886545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!