作为这个介绍spring框架中的面向方面编程(aspect-oriented programming,aop)的系列的第一部分,本文介绍了使您可以使用spring中的面向方面特性进行快速开发的基础知识。 使用跟踪和记录方面(面向方面领域的helloworld)作为例子,本文展示了如何使用spring框架所独有的特性来声明切入点和通知以便应用方面。本系列的第二部分将更深入地介绍如何运用spring中的所有通知类型和切入点来实现更实用的方面和面向方面设计模式。
本文的目的不是要介绍构成模块化j2ee系统——即spring框架——的所有重要元素,我们将只把注意力放在spring所提供的aop功能上。由于spring的模块化设计方法,我们可以只使用该框架的aop元素,而无需对构成spring框架的其他模块做太多考虑。
在aop方面,spring提供了什么?
“它的目标不是提供最完善的aop实现(虽然spring aop非常强大);而是要提供aop实现与spring ioc的紧密集成,以便帮助解决企业应用中的常见问题。”
spring framework参考文档
为了实现这个目标,spring框架目前支持一组aop概念,从切入点到通知。本文将展示如何使用spring框架中所实现的如下aop概念:
通知(advice):如何将before通知、afterreturning通知和afterthrowing通知声明为bean。
切入点(pointcut):如何声明静态切入点逻辑以将xml spring bean configuration文件中的所有内容联系在一起。
advisor:关联切入点定义与通知bean的方式。
设置场景:一个简单的例子应用程序
“一般而言,spring并不是预描述的。虽然使用好的实践非常容易,但是它避免强制推行一种特定的方法。”
spring framework参考文档
要试用spring框架的aop功能,首先我们要创建一个简单的java应用程序。ibusinesslogic接口和businesslogic类为spring框架中的bean提供了简易构件块。虽然该接口对于我们的简单应用程序逻辑来说不是必需的,但是它是spring框架所推荐的良好实践。
| public interface ibusinesslogic { public void foo(); } public class businesslogic implements ibusinesslogic { public void foo() { system.out.println("inside businesslogic.foo()"); } } |
| import org.springframework.context.applicationcontext; import org.springframework.context.support.filesystemxmlapplicationcontext; public class mainapplication { public static void main(string [] args) { // read the configuration file applicationcontext ctx = new filesystemxmlapplicationcontext("springconfig.xml"); //instantiate an object ibusinesslogic testobject = (ibusinesslogic) ctx.getbean("businesslogicbean"); // execute the public // method of the bean testobject.foo(); } } |
| <?xml version="1.0" encoding="utf-8"?> <!doctype beans public "-//spring//dtd bean//en" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- bean configuration --> <bean id="businesslogicbean" class="org.springframework.aop.framework.proxyfactorybean"> <property name="proxyinterfaces"> <value>ibusinesslogic</value> </property> <property name="target"> <ref local="beantarget"/> </property> </bean> <!-- bean classes --> <bean id="beantarget" class="businesslogic"/> </beans> |
图1.没有对businesslogic bean应用方面时的顺序图
关键字 本文所属关键字相关 与本文相关文章
分类 所有文章关键字导航源码编程相关Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏 操作系统/服务器相关Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器 标准 网站致力的规范 |