调整独立应用程序以使用Spring

时间:2014-09-17 19:18:17

标签: java spring swing

我已经了解了如何在独立应用程序中使用Spring,但我不确定应该重构大量代码库120,000行的方法,以使更改尽可能渐进。

据我所知,除非该对象由应用程序上下文管理,否则Spring不会在对象中注入任何内容。如果这是真的,我想我有两个选择: 1-从主类开始重构,但这意味着很快就会出现复杂的情况。 2-静态地共享应用程序上下文,以便我可以开始重构最简单的事情,在我准备就绪时进行难度扩展。

我不是静态访问的粉丝,所以我会尽量避免这种选择,但我不知道从启动时加载的巨大类开始是不是一个好主意。有关最佳方法的任何想法吗?

顺便说一下,在我可以修复依赖项之前注入Swing组件是否可以?

2 个答案:

答案 0 :(得分:4)

我认为在接近如此大规模的技术变革之前,开始问自己是否正在遵循Spring从您开始使用它时引导您拥有的架构,这可能是一个好主意。 因此,您的申请是否基于MVC pattern

  • 如果没有,也许您的产品尚未准备好进行重构 用Spring。在这种情况下,我建议重构产品 首先进行设计,使其符合MVC架构模式。
  • 如果是,那么我将继续使用基于用例的方法,开始 从需要复杂设计的用例和 实施

E.g。我会寻找非常重要的实体类或包含大量逻辑的业务类。这样,您可以降低进行大量重构的风险,然后才意识到,例如,Spring不适合您的产品核心。 在确定最关键的用例之后,您可以通过在单个关键场景(用户输入 - 业务逻辑 - 实体操作 - 持久性)上从端到端引入Spring来开始尝试重构如何对您当前的产品起作用。如果您成功,那么您将继续重构,否则您可以在介绍Spring之前回过头来尝试了解更改当前产品的位置。

当然,当你有一些使用Spring的经验并且你不必应对新手的问题时,这是有效的。如果您是Spring的新手,那么我建议您在开始重构这样一个大项目的冒险之前获得一些Spring经验。

答案 1 :(得分:2)

简单地开始并使用spring连接新代码/类。您将修改现有的main方法以初始化ApplicationContext并加载新功能。随着时间的推移,当变更请求到达时,您将重构并迁移现有代码库以使用spring依赖注入。