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();
} }

最新文章

  1. JS操作未跨域iframe里的DOM
  2. 文本切割软件Replace Pioneer
  3. storm基础系列之五---------接入数据收集系统flume
  4. [ZigBee] 8、ZigBee之UART剖析&#183;二(串口收发)
  5. jenkins2 pipeline高级
  6. dp --- CSU 1547: Rectangle
  7. minhash
  8. Mac下Intellij IDea发布Java Web项目详解五 开始测试
  9. Java多线程之非线程安全
  10. The 2014 ACM-ICPC Asia Regional Anshan Online
  11. flask开发框架
  12. 接线端子VH,CH,XH
  13. 未能执行URL
  14. LeetCode 1013 Partition Array Into Three Parts With Equal Sum 解题报告
  15. centos python2升级为python3 升级旧版本django
  16. 使用 com.alibaba.fastjson把json型数据解析成一个javabean
  17. 第9章 应用层(3)_telnet协议和远程桌面协议RDP
  18. Maven构建自动化
  19. CSS基础-DAY1
  20. BZOJ 1059: [ZJOI2007]矩阵游戏 匈牙利算法

热门文章

  1. npm命令要记
  2. lca最短公共祖先模板(hdu2586)
  3. linux基本优化
  4. [BZOJ 2425] 计数
  5. 【线段树】Gym - 100507C - Zhenya moves from parents
  6. 【AC自动机+DP】USACO2012 JAN GOLD_Video Game Combos
  7. 【R笔记】R的内存管理和垃圾清理
  8. MyBasic架构
  9. iOS开发技巧&mdash;&mdash;关闭Autoresizing开启Autolayout
  10. 利用hsdis和JITWatch查看分析HotSpot JIT compiler生成的汇编代码