1、后置通知

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

a、 在beans.xml中配置

 ....

 <beans>

   <!--配置被代理对象-->
<bean id="test1Service" class="com.huawei.aop.Test1Service">
<property name="name" value="spring"/>
</bean> <!--配置后置通知-->
<bean id="myAfterServiceAdvice" class="com.huawei.aop.MyAfterServiceAdvice"/> <!--配置代理对象-->
<bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean"> <!--配置代理接口集-->
<property name="proxyInterfaces">
<list>
<value>com.huawei.aop.Test1ServiceInter</value>
<value>com.huawei.aop.Test2ServiceInter</value>
</list>
</property > <!--将通知织入代理-->
<property name="interceptorNames">
<list>
<value>myAfterServiceAdvice</value>
</list>
</property> <!--配置被代理对象-->
<property rel="target" name="test1Service"/>
</bean>
</beans>

b、实现 AfterReturningAdvice 接口

 package com.huawei.aop;

 import java.lang.reflect.Method;

 import org.springframework.aop.AfterReturningAdvice;

 public class MyAfterServiceAdvice implements AfterReturningAdvice
{ @Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
Object arg3) throws Throwable
{ System.out.println("关闭资源");
} }

3.测试类

 package com.huawei.aop;

 import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class AopTest { /**
* aop 编程测试类
*/
public static void main(String[] args)
{
//获取应用上下文对象
ApplicationContext ac = new ClassPathXmlApplicationContext("com/huawei/aop/beans.xml"); //获取实例对象
Test1ServiceInter ti = (Test1ServiceInter) ac.getBean("proxyFactoryBean"); //调用实例方法
ti.sayHello(); ((Test2ServiceInter) ti).sayBye();
} }

spring学习笔记(五)的更多相关文章

  1. Spring学习笔记五:Spring进行事务管理

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6776256.html  事务管理主要负责对持久化方法进行统一的提交或回滚,Spring进行事务管理即我们无需在 ...

  2. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  3. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  4. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  5. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  6. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  9. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  10. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

随机推荐

  1. asp.net中利用JSON进行增删改查中运用到的方法

    //asp.net中 利用JSON进行操作, //增加: //当点击“增加链接的时候”,弹出增加信息窗口,然后,在窗体中输入完整信息,点击提交按钮. //这里我们需要考虑这些:我会进行异步提交,使用j ...

  2. poj1062 最短路径 dijkstra

    题目连接:http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用 1000 ...

  3. POJ 2315:Football Game(博弈论)

    [题目链接] http://poj.org/problem?id=2315 [题目大意] 两名球员轮流从N个球中挑出不多于M个射门,每个球半径都是R,离球门S. 每次只能踢出L以内的距离.进最后一个球 ...

  4. 【网络流】【Dinic】【Next Array】Dinic模板

    注意:有时加边不一定要加反向弧. Next Array版. #include<cstdio> #include<cstring> #include<algorithm&g ...

  5. 1.6(学习笔记)Session

    一. Session简介 Session是用于解决HTTP无状态问题,HTTP协议本身是没有状态的, 就类似一个没有记性的商人,每次只交易当前的货物,交易完后就忘记了 以前的交易历史.我们和商人交易时 ...

  6. JDBC 操作数据库

    jdbc: package org.java.dao; import java.sql.Connection; import java.sql.DriverManager; import java.s ...

  7. nginx+php-fpm 报错Primary script unknown

    报错信息(nginx日志): // :: [crit] #: * stat() : Permission denied), client: 172.21.205.25, server: localho ...

  8. xcode编译项目Permission denied错误

    打开终端,输入命令     sudo chmod -R 777 工作目录

  9. C++类的复习

    1.C++ 类的声明:class class_name{    private:        /*        *私有的数据和成员函数        *只能被本类中的成员函数引用,类外不能调用   ...

  10. nativeexcel将excel导入数据集

    nativeexcel将excel导入数据集 uses nexcel; procedure Tfgoods.daoruExecute(Sender: TObject);var od: TOpenDia ...