快速业务通道

Apache Geronimo和Spring 框架,第4部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
m.out.println(cal.getTime() + " :::: PREPARING TO CALL "+method.getName() +" of "+obj2.getClass().getName()+"");   } }

这个 Advice 类定义用于指定实现 before() 方法以启用 Spring 运行时在达到适当的联结点时通报建议。

必须让 Spring 应用程序上下文识别到此建议,还要将此建议附加到应用程序的适当联结点上。 清单 4 显示了实现上述操作的配置。

清单 4. 向应用程序上下文中添加 Before 建议

<bean id="beforeTracer" class="phonebook.aop.Ma***ngBeforeAdvice"/>   <!-- Bean Definitions  for Advisors -->   <!-- Before Ma***ng Advisor -->    <bean id="beforeMa***ngAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">      <property name="advice">       <ref local="beforeTracer"/>      </property>     <property name="pattern">        <value>.*</value>     </property>   </bean>   <bean id="phonebook" class="org.springframework.aop.framework.ProxyFactoryBean">     <property  name="proxyInterfaces">        <value>phonebook.dao.IPhonebookDataProvider</value>      </property>     <property name="target">       <ref  local=" phonebookJdbcDataProvider"/>     </property>      <property name="interceptorNames">       <list>          <value>beforeMa***ngAdvisor</value>       </list>      </property>   </bean>

此处的第一个 Bean 定义用 Before 建议 接口的实现定义一个新 Bean。

第二个定义将定义 before 标记建议程序。它定义了切入点及必须 在每个切入点上执行的建议。可以使用正则表达式为应当应用建议的选定方法设定模式。我仅使用了 .* RE 将此应用到目标对象的所有方法中。

使用 ProxyFactoryBean 的最后一个 Bean 是起整合作用 的实际 Bean。ProxyFactory 在接口上运行,并且它将仅把此方面应用到实现在此属性中定义的接口的类 中。目标用于指定方面应当围绕的对象。

Apache Geronimo和Spring 框架,第4部分(10)

时间:2011-10-13 IBM Arun Chhatpar

After 建议

After 建议的定义与上述类似;开始 先定义一个用于实现 AfterReturningAdvice 接口的类。afterReturning() 方法将在目标对象上的实际 方法执行完后在运行时被拦截。

可以在 src 目录中查看类和定义。

Around 建议

添加 Around 建议的过程与上面说明的 Before 建议定义十分相似,只有一处重要区别。由于 Around 建 议在 Spring AOP 中是作为拦截程序被实现的,因此实现类将实现 MethodIntercepter 接口。

另 一个重要区别在于通过在 MethodInvocation 对象上调用 proceed() 方法会明显延长执行流程。如果不 这样做,则 Around 建议方面将不在目标对象上调用方法。这种设计为开发人员提供了定义实际方法被调 用后的前操作和后操作的能力。

清单 5 展示了 Around 建议类的定义。

清单 5. 实现 Around 建议的类

public class Ma***ngInterceptor implements MethodInterceptor  {   public Object invoke(org.aopalliance.intercept.MethodInvocation 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号