Java 向现有JSP/EJB应用程序添加Spring框架

Java 向现有JSP/EJB应用程序添加Spring框架,java,hibernate,spring,spring-mvc,ejb-2.x,Java,Hibernate,Spring,Spring Mvc,Ejb 2.x,2.1年前,我用JSP和EJB开发了一个现有的应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用Spring和Hibernate框架来添加新功能,或者我需要开发新的应用程序来使用最新的框架 提前感谢。首先,为什么要添加Spring?你这样做的目的是什么?要回答这个问题,是的,你可以找到一种方法慢慢地开始将其集成到现有的应用程序中,但在我看来,你需要一个很好的理由 如果你真的想用这样一个重大的改变来“现代化”应用程序(而且你有理由这样做),我个人会从一个全新的项目开始,然后

2.1年前,我用JSP和EJB开发了一个现有的应用程序。现在我想用新功能增强应用程序。有没有办法在同一个旧应用程序中使用Spring和Hibernate框架来添加新功能,或者我需要开发新的应用程序来使用最新的框架


提前感谢。

首先,为什么要添加Spring?你这样做的目的是什么?要回答这个问题,是的,你可以找到一种方法慢慢地开始将其集成到现有的应用程序中,但在我看来,你需要一个很好的理由

如果你真的想用这样一个重大的改变来“现代化”应用程序(而且你有理由这样做),我个人会从一个全新的项目开始,然后导入你可以重用的东西


随着时间的推移而变化的应用程序(几乎全部)变得杂乱无章,并且随着时间的推移积累了大量的“垃圾”。最终,它们无法维护,无论是因为应用程序中的一些中小企业找到了另一份工作,还是因为它变得过于混乱和脆弱。我忍不住想,做这样的事情(添加到现有的应用程序中)只会加速老化过程(你有多大信心清除“旧”东西,而不急于“以防万一”?),所以尽可能地清理房子会更好。除非你说的是一个状态很好的小应用程序,但在我的经验中,这种情况很少发生。

你可以将Spring和Hibernate添加到现有的应用程序中(毕竟,它们只是一堆jar文件),尽管我并不建议这样做

首先,EJB2.1和Hibernate将发生冲突,因为EJB2.1没有标准JPA,并且使用旧的EJB查询语言

对于持久性,我建议使用其中一种,不要混合使用。如果您有大量使用EJB2.1编写的数据库访问代码,那么请避免在混合中引入Hibernate。这将是一片混乱。如果您只是使用JDBC,那么我想Hibernate可能非常适合

至于Spring,因为它是一个框架,所以向应用程序“添加Spring”并不是一件小事。春天是巨大的,你应该问问自己有什么好处。您想使用哪些部件?只是依赖注入?EJB2.1中没有的抽象层?不容易


一句话:在应用程序中引入Spring和Hibernate是可行的,尽管如果不认真考虑,这将是一个混乱、痛苦和耗时的过程,尤其是在应用程序很大的情况下。

感谢您的回复

我的旧应用程序(JSP+EJB2.1)是一个很大的应用程序。 我们对系统进行了一些增强。现在我们有两个选择

  • 替换旧系统,使用规则引擎和最新框架开发更多模块化系统,以便将来添加新功能/增强功能所需的实施时间更少。将旧系统迁移到新应用程序几乎需要一年的时间

  • 使用最新的框架(如spring、hibernate、rules engine等)对现有系统进行增强,并根据时间/预算将旧的东西慢慢迁移到新的技术平台。(不确定这是否有效)


  • 现在你有了更多的信息,那么最好的方法是什么。

    @ikvenu2000:顺便问一下,你为什么不接受任何答案?你在Stackoverflow上工作了一年多。