繁体   English   中英

使用非弹簧Web应用程序可以实现并行Spring-MVC应用程序吗?

[英]Is a parallel Spring-MVC application possible with a non-spring web app?

我有一个非常庞大的Tomcat应用程序。 非常适合商业(真钱赚钱)。 但它是遗留的Java代码。 意思是,JSP(有很多Javascript,Java代码),Servlets(有几千行代码)等等。 我们希望摆脱这个糟糕的代码。 现在已经有另一个应用程序(不同的目的,不同的功能)的请求。 我们需要在另一个上下文root / NewApp让我们说在遗留应用程序目录结构下。 像一个迷你网站。 它将具有不同的URL,甚至可以为几个虚拟主机提供服务。

我们不想扩展Legacy代码。 我们希望转向更好的技术和更好的做事方式。 我们强烈要求Spring(tile,jackson等等)以及它提供的所有东西,包括portlet。 因此,我们正在考虑将DispatcherServlet / ContextLoaderListener / configLocation等引入遗留应用程序web.xml并将弹簧应用程序并排放置的可能性。

主要原因是新应用程序严重依赖于遗留服务和库。

  1. 这种和平共处是否可能?
  2. 我们可能面临哪些挑战?
  3. 能否请您指出任何示例配置?

不幸的是,我们无法将它们分开。 感谢您对此的见解。

谢谢!!

我们在不久前经历了一个类似的用例,同时将适度大的应用程序从EJB 2.1迁移到Spring。 在很长一段时间内,Spring bean与EJB共存。 我们首先在依赖关系层次结构中选择了叶子,因此Spring bean依赖于EJB而不是相反的方式。 这很漂亮,由于Spring代理和依赖注入,bean像任何其他bean一样调用EJB。

在同一个应用程序中,我们同时拥有Struts 1和Wicket用于新页面(该死的,Struts页面中甚至还有Wicket iframe!),我们甚至将原有的基于JDBC的持久性解决方案与JPA并排。 一切都运作良好。

要记住的事情:

  1. 它仍然是一个应用程序,注意后端缓存

  2. 处理像Spring bean这样的遗留服务。 构建一些桥/代理/适配器,注入遗留服务,就像注入其他bean一样。 不依赖于遗留API(我想象一些单身人士,工厂,JNDI查找)

  3. 测试新旧之间的边界将很难,为很多嘲弄做准备。

  4. 考虑一下Web安全性,您可以轻松地集成两个“应用程序”吗?

  5. 让我们面对现实,你永远不会完全将旧代码重写为新技术。 到那时,新技术也将变得陈旧,新的开发人员将会加入。但是每次都要逐步提高旧代码的质量。 重构可以创造奇迹!

配置没什么特别之处。 这是一个误解,Spring必须统治整个应用程序。 它可以用作轻量级,轻薄的附加组件,与您的应用程序的其余部分相邻。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM