Spring怎么支持EJB的实现
Spring怎么支持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
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解决办法。
关于Spring怎么支持EJB的实现问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。