Java Spring框架中的EJB替代方案是什么
我试图学习Spring框架,在此之前我使用EJB创建应用程序Java Spring框架中的EJB替代方案是什么,java,spring,spring-mvc,jpa,ejb-3.0,Java,Spring,Spring Mvc,Jpa,Ejb 3.0,我试图学习Spring框架,在此之前我使用EJB创建应用程序 [Web服务]->[Business Layer]->[DAO Layer]|[Database] 依循 WebServices:使用带有url映射的Jersey的Restful API,支持JSON和XML格式(news/list.JSON,news/list.XML)。端点(url映射方法)接收到请求后,通过查找(远程、本地)将其转发到相关EJB。EJB处理每件事,应用业务规则并将结果作为DTO(数据传输对象)返回,然后服务将结果
[Web服务]->[Business Layer]->[DAO Layer]
|[Database]
依循
url映射的Jersey
的Restful API,支持JSON和XML格式(news/list.JSON
,news/list.XML
)。端点(url映射方法)接收到请求后,通过查找(远程、本地)将其转发到相关EJB。EJB处理每件事,应用业务规则并将结果作为DTO(数据传输对象)返回,然后服务将结果转换为所需的格式(JSON、XML)
远程
和本地
接口在EJB
中实现的业务层(Facade),这些EJB可以调用其他EJB。WebService层(和/或计时器服务和MDB)也可以调用任何EJB)。对于计时器服务相关的功能,我使用了EJB计时器服务
,对于消息,我使用了消息驱动Bean
和用于日志记录和审计的拦截器EntityManager
的所有数据库相关功能(添加、编辑、删除、搜索)JPA/Hibernate
都写在这里(实体bean和HQL)。
无缝事务支持,每个EJB的方法(基于查找)调用被视为一个单独的事务,DAO层的调用方法是同一事务的一部分(前提是不提供额外的配置)。如果一个db操作失败,则在一个事务中执行多个操作,所有其他操作将自动回滚。每个表都映射为具有关系等的实体类springmvc
上工作过,但无法正确映射/理解上述体系结构
我对AOP略知一二,我认为它是拦截器的完美替代品(或者至少它对我有用)
现在我的问题是如何在Spring框架中替换所有这些
这将同时解释Spring和Java EE(您将在其中使用EJB):
- 泽西岛(RestAPi)春季替代方案⇨ 如果您想使用控制器(
annotation),它是RESTAPI(在spring中带有@Controller
annotation)或spring mvc李>@Path
- 春天的EJB替代方案⇨ Spring并没有提供现成的statefull bean,但您可以使用
注释(或DAO的@Service
),但您必须手动处理事务(例如使用注释)@Repository
- 消息驱动Bean替代方案⇨ Spring中没有现成的等价物,您可以使用Spring的注入和库使其工作(
应该包含您需要的内容)李>package org.springframework.jms
- JPA(实体管理器)替代方案不是ejb⇨ 所以它可以在春天使用
Spring也有很多这样的功能。实际上,只使用JPA是非常简单的。如果Spring数据不是您想要的,那么还有其他数据层替代方案。这几乎是一个只提供链接的答案。你会考虑直接在你的答案中添加相关的细节吗?