zoukankan      html  css  js  c++  java
  • 笔记10 在XML中声明切面(1)

    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.结果

  • 相关阅读:
    Spring异常重试框架Spring Retry
    Ubuntu 16.04无法在WPS中输入中文的问题解决
    Ubuntu 16.04使用百度云的方案
    Ubuntu 16.04安装Wine版的迅雷+QQ(完美方案,终极解决方法)
    Ubuntu下Deb软件包相关安装与卸载
    Spring在Java Filter注入Bean为Null的问题解决
    MyBatis 3在Insert之后返回主键
    MySQL JDBC URL参数(转)
    MySQL索引原理及慢查询优化
    Markdown 语法整理大集合2017
  • 原文地址:https://www.cnblogs.com/lyj-gyq/p/8886545.html
Copyright © 2011-2022 走看看