【发布时间】:2010-12-20 02:56:34
【问题描述】:
2.1 年前,我有一个用 JSP 和 EJB 开发的现有应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用 Spring 和 Hibernate 框架来添加新功能,或者我需要开发新应用程序以使用最新框架。
提前致谢。
【问题讨论】:
标签: java hibernate spring spring-mvc ejb-2.x
2.1 年前,我有一个用 JSP 和 EJB 开发的现有应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用 Spring 和 Hibernate 框架来添加新功能,或者我需要开发新应用程序以使用最新框架。
提前致谢。
【问题讨论】:
标签: java hibernate spring spring-mvc ejb-2.x
首先,为什么要添加 Spring?你这样做的目标是什么?要回答这个问题,是的,您可以找到一种方法慢慢开始将其集成到现有应用中,但我认为您需要一个很好的理由。
如果您真的想通过这样的重大更改来“现代化”应用程序(并且您有理由),我个人会从一个全新的项目开始,然后将您可以重复使用的内容导入其中。
随着时间的推移(几乎所有)发生变化的应用程序变得杂乱无章,并且随着年龄的增长积累了很多“垃圾”。最终它们无法维护,无论是因为应用程序中的某些 SME 找到了另一份工作,还是因为它变得过于混乱和脆弱。我不禁想到做这样的事情(添加到现有的应用程序中)只是加速了老化过程(你有多大信心删除“旧”的东西而不是“以防万一”的冲动?) ,在你可以的时候打扫房子要好得多。除非你说的是一个运行良好的小型应用,但根据我的经验,这种情况很少见。
【讨论】:
您可以将 Spring 和 Hibernate 添加到您现有的应用程序中(毕竟,它们只是一堆 jar 文件),尽管我不建议这样做。
首先,EJB 2.1 和 Hibernate 会发生冲突,因为 EJB 2.1 没有标准的 JPA 并且使用旧的 EJB 查询语言。
为了持久性,我建议使用其中一种,不要混合使用。如果您有大量使用 EJB 2.1 编写的数据库访问代码,那么请避免在您的组合中引入 Hibernate。这将是一团糟。如果您只是使用 JDBC,那么我想 Hibernate 可能是一个不错的选择。
至于 Spring,因为它是一个框架,所以将 Spring 简单地“添加”到您的应用程序并非易事。春天很大,你应该问问自己有什么好处。您想使用哪些部件?只是依赖注入? EJB 2.1 中不存在的抽象层?不容易。
底线:将 Spring 和 Hibernate 引入您的应用程序是可行的,尽管如果不认真考虑,这将是一项混乱、痛苦且耗时的工作,尤其是在您的应用程序很大的情况下。
【讨论】:
感谢您的回复。
我的旧应用程序(JSP+EJB 2.1)很大。 我们对系统进行了一些改进。现在我们有两个选择。
用规则引擎和最新框架替换旧系统并开发更多模块化系统,以便将来添加新功能/增强功能需要更少的时间来实施。将旧系统迁移到新应用程序需要将近一年的时间。
使用最新的框架(如 spring、hibernate、规则引擎等)对现有系统进行增强,并根据时间/预算将旧的东西慢慢迁移到新技术平台。 (不确定这在技术上是否可行)。
现在您有了更多信息,那么最好的方法是什么。
【讨论】: