Spring支持EJB的实现

开发 后端
本文介绍Spring支持EJB的实现,Spring提供了抽象基类来支持EJB的实现,这使得创建无状态EJB,有状态EJB,消息驱动EJB,这三种类型的EJB更加简单。

在传统J2EE应用程序中,企业JavaBeans(EJB)构成了应用程序架构的基础。尽管Spring提供了EJB所提供的许多服务的简化版本,例如可申明的事务管理和对象持久性,但是,在一段时间内,许多应用程序将会继续使用EJB来构建。幸运的是,你能够在基于EJB的解决方案中使用 Spring,本文是从Pro Spring中摘录,Pro Spring的作者Rob Harrop和Jan Machacek主要研究在Spring中,如何简化EJB的创建,以及Spring如何提供一个简单,友好的方法来访问EJB资源。

随着Spring的发展,现在开发者***次真正有了一个EJB的轻量级代替者。使用Spring,你能够利用许多EJB所提供的特性,例如可申明的事务管理,对象池和简单的ORM(对象角色建模)等功能。这就是说,在可预见的未来,我们期望EJB继续能够用于应用程序的开发中。尽管在本书中,我们并没有考虑使用或者不使用EJB的原因,但是,从我们在Spring方面出色的经验来看,我们推荐你尽可能的使用Spring来代替EJB。有关 Spring和EJB优点和缺点更加详细的讨论,可以从Rod Johnson和Juergen Hoeller所写的书《Expert One-on-One J2EE without EJB》(Wrox, 2004)中得到。在本文中,我们将要重点讨论的是如何将Spring技术应用在使用EJB构建的系统中。

Spring支持EJB

Spring支持EJB能够粗略的分成两类:访问和实现。Spring中的访问支持类使你能够容易的访问EJB资源。在这一节里,我们研究 Spring如何扩展基本的JNDI(Java名字目录接口)支持框架对EJB的访问,并且利用AOP(面向切面的编程)支持来提供对EJB资源的基于代理访问。

Spring提供了抽象基类来支持EJB的实现,这使得创建无状态EJB,有状态EJB,消息驱动EJB,这三种类型的EJB更加简单。这三种类的使用前提并不是减轻创建EJB的负担,而是让你能够从bean内部比较容易的访问Spring管理的资源,更重要的是,这有助于将业务逻辑从EJB实现中分离,写到EJB的POJO(plain old Java object)对象中。在这里,不用担心这些模糊说法,我们将会在下一章中,使用两个例子来详细地讨论他们。

我们将要构建一个使用了两个EJB服务的简单的Web应用程序。***个无状态会话bean实现了EchoService业务逻辑接口,并且提供了简单的响应能力。第二个是有状态会话bean,它实现了CounterService业务逻辑接口,并且提供了有状态计数服务。

这些是简单的例子,但是它们有助于演示所推荐的Spring中编译EJB组件的解决办法,和Spring支持EJB的各种不同组件之间的区别。除了讨论例子中的多种部署描述符外,我们并不对EJB作更详细的研究。然而,我们将对Spring在多种组件中对EJB支持的实现,以及这种实现如何影响应用程序作深入的研究。特别地,我们研究Spring如何在ApplicationContext中定位EJB,以及如何使用JNDI基础框架来定位 JNDI资源。

你可能注意到,我们提到的Spring支持三种EJB,但是我们仅仅实现两种类型的EJB,无状态和有状态。消息驱动bean的支持类使用了类似于无状态和有状态会话bean所使用的模式。

在Spring中构建EJB组件

Spring提供了三种抽象类作为EJB bean类的基类,他们是:AbstractStatelessSessionBean,AbstractStatefulSessionBean和 AbstractMessageDrivenBean。当使用Spring来构建EJB的时候,必须提供所有不同的接口和home类,但是,当实现 bean类的时候,就需要从合适的Spring基类继承。Spring提供的基类允许EJB组件访问Spring的 ApplicationContext,并且,这样允许这些组件访问Spring所管理的资源。

在继续使用Spring来构建EchoService和CounterService bean的详细讨论之前,我们将要看看,Spring如何在ApplicationContext中定位EJB组件,以及在使用Spring时,所推荐编译EJB解决办法。

【编辑推荐】

  1. EJB技术的历史
  2. JavaBean与EJB的不同
  3. 基于EJB技术的商务预订系统的开发
  4. EJB的分类及其各自的功能和应用
  5. J2EE中EJB的专用术语解释
责任编辑:佚名 来源: IT专家网
相关推荐

2009-06-26 14:37:10

EJB和Spring

2009-06-12 09:41:07

EJB3.0Spring

2009-06-11 16:01:17

EJB容器

2009-06-22 16:59:33

POJOSpringEJB 3.0

2009-06-11 16:25:44

EJB2.0EJB

2009-06-11 17:37:32

EJB注释

2009-10-29 09:52:55

OSGi

2009-06-11 15:26:05

EJB组件EJB容器

2009-06-11 16:53:09

什么是EJBEJB

2009-06-25 16:35:12

EJB技术

2009-06-12 09:30:56

EJB3.0Spring+Hibe

2009-06-12 12:46:59

EJB3.0

2023-10-23 10:43:24

SpringRestful风格

2009-06-26 15:58:28

EJB

2009-06-12 11:46:39

JavaBeanEJB

2009-06-11 14:25:17

EJBJava

2009-06-18 10:21:22

Spring的支持Sun GlassFi

2009-06-17 13:58:00

JMeter测试EJB

2009-06-24 15:53:08

Entity Bean多对多映射

2009-06-04 17:33:08

EJB 3.1EJB 3.0
点赞
收藏

51CTO技术栈公众号