将一个大规模、结构不佳的Java系统迁移到Spring应用程序框架



我正在寻找迁移Java系统的开发故事/经验到Spring应用程序框架。我们的目标是bean容器和Spring的依赖注入的好处。我们当时没有考虑Spring MVC或任何其他特定组件。

我们的系统目前没有使用任何类型的bean容器。都是纯Java——也没有JEE。

它有自己的内部构建的用于管理Db服务的服务引擎,内存缓存、会话mngt、配置和某些特定于产品的组件。更重要的是,它的结构很差。封装非常差——需要大量重构,消除重复和未使用的代码,修复错误。我们的大量开发工作都在修复错误,而不是结构性的——甚至进一步恶化。这是一个已有10多年历史的系统,是围绕其原始架构构建的。

我们甚至还不确定是否首先对现有结构进行改造然后寻求获得Spring的好处,或者同时做这两件事。

对我来说,在Spring上从头开始工作一个新的体系结构,它实现了目前的制度是最好的。然而,这可能/不太可行,因为它不会在对于高层管理人员来说,未来很近。

我将感谢直接/间接的参考意见、经验和其他投入。

TIA。

//=========================================

编辑:

所以,用一句话来说,这是关于"如何将恐龙迁移到春天"。这是一个战略问题,而不是像如何/在哪里这样的技术迁移组织/定义/集成特定组件。

我首先要创建一个迁移计划。。。

  • 将尽可能多的遗留java类/函数转换为bean格式
  • 用内置的Spring库(如数据库访问、安全性等)交换遗留代码和/或用遗留接口封装Spring库以迁移遗留代码
  • 设计了一种同时运行遗留系统和新系统的方法,同时将元素从遗留系统缓慢过渡到新系统

首先,请参阅本文。如果您满足服务器迁移的要求,请继续。如果你不这么认为,那就放弃你的计划。

如果你认为你只需要更换系统内部的一些部件,而不是整个系统,你需要考虑效益是否会超过成本。有一条指导意见说"如果有效,就不要更改",因为对现有代码的任何更改都会增加出错的风险。你确定春天会带来你想到的所有好处吗?此外,为降低风险而启动的测试数量也很昂贵。

除此之外,如果您仍然坚持需要不惜一切代价进行迁移,我建议您重建与旧系统分离的新系统,同时仍然维护旧系统。然后,您将需要在相同的数据库下部分实现新系统,而不是完全截断。

最新更新