2.1 年前,我有一个用 JSP 和 EJB 开发的现有应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用 Spring 和 Hibernate 框架来添加新功能,或者我需要去开发新应用程序以使用最新框架。
提前致谢。
2.1 年前,我有一个用 JSP 和 EJB 开发的现有应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用 Spring 和 Hibernate 框架来添加新功能,或者我需要去开发新应用程序以使用最新框架。
提前致谢。
一、为什么要加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)很大。我们对系统进行了一些改进。现在我们有2个选择。
使用规则引擎和最新框架替换旧系统并开发更多模块化系统,以便将来添加新功能/增强功能需要更少的时间来实施。将旧系统迁移到新应用程序需要将近一年的时间。
使用 spring、hibernate、规则引擎等最新框架对现有系统进行增强,并根据时间/预算将旧的东西慢慢迁移到新技术平台。(不确定这在技术上是否可行)。
现在您有了更多信息,那么最好的方法是什么。