gpt4 book ai didi

spring - 从 EJB3 迁移到 Spring、Hibernate

转载 作者:行者123 更新时间:2023-12-04 13:08:49 24 4
gpt4 key购买 nike

我们有一个基于 EJB3、Oracle 10 和 JBoss 4 的基于桌面的应用程序。这是大约三年前创建的。 JPA 实体用于 ORM,业务逻辑在无状态 session bean 中实现。客户端是使用 Swing API 开发的。

现在需要用 Spring、Hibernate 和 JBoss 替换以前的技术,以用于下一个版本的应用程序。客户端仍将在 Swing 中。计划是用 POJO 替换实体,并将业务逻辑从 Session Bean 转移到 Spring Bean,即数据访问对象(扩展 HibernateDaoSupport)。

那么问题来了,我们是否有可能将我们的应用程序从 Session Beans 中完全解放出来,并将业务逻辑转移到 Spring Dao 中?还是我们仍然必须保留 session Bean?如果完全避免使用 Session Bean,客户端应用程序将如何访问业务方法?就像基于 JavaEE 的应用程序一样, session bean 可以通过 Jndi 查找来访问。

任何建议都非常感谢。

最佳答案

这是完全可能的,事实上这些技术并没有那么不同。要立即开始,请尝试以下操作:

<context:component-scan
base-package="com.example.project"
scope-resolver="org.springframework.context.annotation.Jsr330ScopeMetadataResolver">
<context:include-filter type="annotation" expression="javax.ejb.Stateless"/>
</context:component-scan>

折断!现在你所有的 SLSB 现在都是原型(prototype) Spring bean。如果某些 SLSB 有状态(呃!),您将不得不将它们包装在池代理中,还有很多工作要做。但是 Spring 已经支持大多数 EE 特性。例如,一开始坚持使用 JPA 和 Hibernate 后端 - 无需更改 DAO 代码, @EntityManger可以以相同的方式注入(inject) Spring bean。

同时,您还可以混合使用 Spring 和 EJB - EJB 可以轻松地注入(inject) Spring bean,从而提供良好的互操作性。

更新 : 另外,你为什么要从 JPA 中“降级”做 Hibernate?如果您的应用程序可以在 JPA 中正常工作,那么也可以在 Spring 应用程序中使用它——当您需要 Hibernate 特定功能时,您仍然可以偶尔使用它们。

关于spring - 从 EJB3 迁移到 Spring、Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com