转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
EJB 3.0+Aspect实现声明性编程初步         ★★★★

EJB 3.0+Aspect实现声明性编程初步

作者:闵涛 文章来源:闵涛的学习笔记 点击数:796 更新时间:2009/4/22 23:30:04
  提要 本文将与你一同探讨怎样把注解和方面的威力联合起来,以与EJB 3.0兼容的方式为企业实现提供声明性服务,而在同时仍然提供容器的独立性。

  一、 引言

  在我们共同寻求进一步提高软件开发生产性能的方法的过程中,我们-作为Java社团成员-一般都转向J2EE来提供针对企业开发中更具挑战性的技术问题如分布式事务管理、并发性和对象分布等的解决方案。其背后的指导思想-这些复杂的企业服务能被应用程序服务器供应商所实现并能为商业开发者所平衡-的确是一种很好的思想。J2EE,具体地说是EJB,已成功地提供了一个平台-在其上构建企业Java应用程序。

  这其中部分的成功是由于能够进行声明性编程-一种程序开发方式-用这种方式,你可以声明基础结构服务而不是用商业逻辑明确地编码从而使代码散布于各处。EJB已经证明了这种编程方式的价值-通过允许企业问题例如事务和安全被用一种发布描述符所声明并为容器所处理。

  然而,在过去的岁月中,越来越多的开发者认识到EJB在团队的生产效率方面给它自己带来新的大量的挑战-每个EJB必须伴随多个接口,以一种发布描述符描述,经由JNDI被存取,等等。而在容器外EJB上进行单元测试也带来另外的困难,如今EJB已不再把重点放在单纯的面向对象开发上。

  请注意,为阅读本文您需具备如下工具:

  ·Java 2 SDK 1.5

  ·Maven 2.0 Beta 2

  EJB 3.0的目标在于从以下几个方面使企业开发更为容易:

  ·通过引入元数据注解来实现声明性请求企业服务

  ·经由注解实现依赖性/资源注入

  ·实现企业beans与EJB特定接口的解耦

  ·经由轻量级的对象关系映射实现持续性存储的简化

  这对于EJB开发者来说尤如一股春风-一直以来,他们竭力地从事开发、测试和维护EJB。利用EJB 3.0写一个企业bean现在变得很容易,就如用特定的注解创建一个POJO(传统的Java对象)以把它标明为一个EJB并请求企业服务。下面是一个来自于EJB 3.0 Public Draft中EJB的例子:


  EJB 3.0声明中实质上指明开发者需要的不是一重量级的、"一次发布满足所有"的解决方案,而是一个轻量级的、容易使用的解决方案-为开发者提供一定范围的企业服务。为此,EJB 3.0所提供的最重要的方法之一就是实现企业beans与EJB API的解耦。并且,此解决方案还带来令人感兴趣的衍生-EJB现在不仅能够运行在不同的EJB容器上,而且还能运行于任何应用程序框架内部-这些框架必须能够识别EJB 3.0(JSR 220)和用于声明企业服务的普通注解(JSR 250)。

  本文没有提供关于声明性编程、EJBs、方面或注解的深度探索。相反,而只是分析一下这些技术之间的相互关系并讨论如何把它们用一种新的方式结合起来以简化应用程序开发。

  在本文中,你将会学习到如何编写一个EJB 3.0兼容的bean并且通过创建几个简单的方面使其具有声明性事务管理、安全和资源注入等功能。我希望您能从这个练习中得到以下的受益:

  ·学习方面的三个实际应用(依赖性注入、安全和事务)。

  ·熟悉EJB 3.0及其背后的思想。

  ·认识到怎样实现EJB与特定API的解耦以允许EJB 3.0兼容的服务能够以轻量级实现而不是仅由EJB来提供。

  二、 实例应用程序-航班订购

  在整个后面的讨论中,你将学习到一个航班订购系统的实现-它使用方面和注解来实现依赖性注入、安全和事务管理。该应用程序仅执行两项功能:它允许用户搜索航班(图1),然后订购一次旅行(图2)。这两个操作都将被进行安全处理以仅允许能被识别的用户来执行它们。另外,既然"订购旅行"操作包含订购两个航班(外出和返回航班),那么需要把该操作创建为事务性的-如,两个订购将作为一个工作单元要么都成功要么都失败。


图1.航班查询:首先,用户查找满足他们的指定标准的航班。

图2.航班订购:接下来,用户订购一个外出航班和一个返回航班。两个订购要么都成功要么都失败。
  这个简单的Web应用程序包含几个servlet、一个服务外观和一个DAO层(见图3)。

  资源配置、安全性和事务管理等横切关注点将由方面(用AspectJ 1.5 M3实现)所提供以实现在Java 5注解中所声明的注入行为。


图3.航班订购系统架构:这个航班订购系统包括三个主要组成组件-它们联合起来共同完成用户请求。


[网页制作]JavaBean与EJB有何不同之处  [网页制作][J2EE] 实战开发EJB
[Web开发]EJB 客户端程序_  [Web开发]EJB Interface
[JAVA开发]前进:从EJB 2.1到EJB 3.0  [JAVA开发]EJB 3.0是Hibernate的克隆吗?
[JAVA开发]利用EJB 3.0的JPA设计企业应用程序  [JAVA开发]EJB 3.0+Beehive开发客户反馈系统_软件_EJB3.0
[JAVA开发]EJB 3.0 开发指南之实体Bean  [JAVA开发]EJB 3.0 开发指南之依赖值对象
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台