zoukankan      html  css  js  c++  java
  • spring学习笔记(五)

    1、后置通知

        需求:调用相应业务方法后,完成资源的关闭。

       a、 在beans.xml中配置

     1 ....
     2 
     3 <beans>
     4 
     5   <!--配置被代理对象-->
     6   <bean id="test1Service" class="com.huawei.aop.Test1Service">
     7       <property name="name" value="spring"/>
     8   </bean>
     9 
    10   <!--配置后置通知-->
    11   <bean id="myAfterServiceAdvice" class="com.huawei.aop.MyAfterServiceAdvice"/>
    12 
    13   <!--配置代理对象-->
    14   <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean">
    15 
    16   <!--配置代理接口集-->
    17      <property name="proxyInterfaces">
    18         <list>
    19            <value>com.huawei.aop.Test1ServiceInter</value>
    20            <value>com.huawei.aop.Test2ServiceInter</value>   
    21         </list>
    22       </property >
    23 
    24       <!--将通知织入代理-->
    25       <property name="interceptorNames">
    26           <list>
    27                <value>myAfterServiceAdvice</value>
    28           </list>
    29       </property>
    30   
    31       <!--配置被代理对象-->
    32       <property rel="target" name="test1Service"/>
    33     </bean>
    34 </beans>


       b、实现 AfterReturningAdvice 接口

     1 package com.huawei.aop;
     2 
     3 import java.lang.reflect.Method;
     4 
     5 import org.springframework.aop.AfterReturningAdvice;
     6 
     7 public class MyAfterServiceAdvice implements AfterReturningAdvice
     8  {
     9 
    10     @Override
    11     public void afterReturning(Object arg0, Method arg1, Object[] arg2,
    12             Object arg3) throws Throwable 
    13        {
    14 
    15         System.out.println("关闭资源");
    16     }
    17 
    18 }

       3.测试类

     1 package com.huawei.aop;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 public class AopTest {
     7 
     8     /**
     9      *  aop 编程测试类
    10      */
    11     public static void main(String[] args)
    12     {
    13         //获取应用上下文对象
    14         ApplicationContext ac = new ClassPathXmlApplicationContext("com/huawei/aop/beans.xml");
    15         
    16         //获取实例对象
    17         Test1ServiceInter ti = (Test1ServiceInter) ac.getBean("proxyFactoryBean");
    18         
    19         //调用实例方法
    20         ti.sayHello();
    21         
    22         ((Test2ServiceInter) ti).sayBye();
    23     }
    24 
    25 }
  • 相关阅读:
    laravel使用redis报错
    PHP新特性W3Cschool
    【python】跳过验证直接登陆-cookie已经知道需要部分直接注入
    【python】显示等待
    【python】pymysql库的简单使用
    【python】UI自动化优化浏览器重复打开和跑脚本时电脑无法做其他工作的问题
    【python】seleniumwire和selenium的区别
    【python】UI自动化-新版
    【python】UI自动化获取输入框的值
    【python】UI自动化多窗口处理
  • 原文地址:https://www.cnblogs.com/yiliweichinasoft/p/3567690.html
Copyright © 2011-2022 走看看