J2EE中操纵Spring AOP框架和EJB组件[Java编程]
本文“J2EE中操纵Spring AOP框架和EJB组件[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
快速发展的开辟人员社区、对各种后端技术(包含JMS、JTA、JDO、Hibernate、iBATIS等等)的支持,以及(更为重要的)非侵入性的轻量级IoC容器和内置的AOP运行时,这些因素使得Spring Framework关于J2EE利用程序开辟非常具有吸引力.Spring托管的组件(POJO)可以与EJB共存,并答应利用AOP办法来处理企业利用程序中的横切方面——从监控和审计、缓存及利用程序级的安全性开始,直处处理特定于利用程序的业务需求.
本文将向您介绍Spring的AOP框架在J2EE利用程序中的实际利用.
简介
J2EE技术为实现服务器端和中间件利用程序供应了坚固的底子.J2EE容器(比方BEA WebLogic Server)可以管理系统级的元素,包含利用程序生命周期、安全性、事件、远程掌握和并发性,并且它可以保证为JDBC、JMS和JTA之类的常见服务供应支持.但是,J2EE的宏大和复杂性使开辟和测试变得非常艰难.传统的J2EE利用程序普通严重依靠于通过容器的JNDI才可用的服务.这意味着需求大量直接的JNDI查找,大概要利用Service Locator情势,后者略微有所改良.这种架构提高了组件之间的耦合度,并使得单独测试某个组件成为几近不大概实现的事情.您可以阅读Spring Framework成立者所撰写的J2EE Development without EJB一书,此中深化解析了这种架构的缺陷.
借助于Spring Framework,可以将利用无格局Java对象实现的业务逻辑与传统的J2EE底子架构衔接起来,同时极大地削减了拜候J2EE组件和服务所需的代码量.基于这一点,可以把传统的OO计划与正交的AOP组件化结合在一同.本文稍后将会演示若何重构J2EE组件以操纵Spring托管的Java对象,然后利用一种AOP办法来实现新特点,从而保护杰出的组件独立性和可测试性.
与其他AOP工具相比,Spring供应了AOP功效中的一个有限子集.它的目标是精密地集成AOP实现与Spring IoC容器,从而帮忙办理常见的利用问题.该集成是以非侵入性的方法完成的,它答应在同一个利用程序中混合利用Spring AOP和表现力更强的框架,包含AspectJ.Spring AOP利用无格局Java类,不要求特别的编译历程、掌握类装载器层次构造或更改布置配置,而是利用Proxy情势向应当由Spring IoC容器托管的目标对象利用告诉.
可以按照具体情形在两种范例的代理之间举行挑选:
◆第一类代理基于Java动态代理,只实用于接口.它是一种尺度的Java特点,可供应出色的性能.
◆第二类代理可用于目标对象没有实现任何接口的场景,并且这类接口不能被引入(比方,关于遗留代码的情形).它基于利用CGLIB库的运行时字节码生成.
关于所代理的对象,Spring答应利用静态的(办法匹配基于切当名称或正则表达式,大概是注释驱动的)或动态的(匹配是在运行时举行的,包含cflow切入点范例)切入点定义指派特定的告诉,而每个切入点可以与一条或多条告诉关联在一同.所支持的告诉范例有几种:环抱告诉(around advice),前告诉(before advice),返回后告诉(after returning advice),抛出非常后告诉(after throwing advice),以及引入告诉(introduction advice).本文稍后将给出环抱告诉的一个例子.想要理解更具体的信息,可以参考Spring AOP框架文档.
正如先前提到的那样,只可以告诉由Spring IoC容器托管的目标对象.但是,在J2EE利用程序中,组件的生命周期是由利用服务器托管的,并且按照集成范例,可以利用一种常见的端点范例把J2EE利用程序组件公开给远程或本地的客户端:
◆无状况的、有状况的或实体bean,本地的或远程的(基于RMI-IIOP)
◆监听本地或外部JMS行列和主题或入站JCA端点的消息驱动bean(MDB)
◆Servlet(包含Struts或其他终端用户UI框架、XML-RPC和基于SOAP的接口)
图1:常见的端点范例
要在这些端点上利用Spring的AOP框架,必须把全部的业务逻辑转移到Spring托管的bean中,然后利用服务器托管的组件来拜托调用,大概定义事件划分和安全上下文.固然本文不谈论事件方面的问题,但是可以在“参考资料”部份中找到相关文章.
我将具体介绍若何重构J2EE利用程序以利用Spring功效.我们将利用XDoclet的基于JavaDoc的元数据来生成home和bean接口,以及EJB布置描写符.可以在下面的“下载”部份中找到本文中全部示例类的源代码.
以上是“J2EE中操纵Spring AOP框架和EJB组件[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |