Vaadin JavaEE 是否可以逐步迁移到 Vaadin Spring?

我们有一个现有的 Vaadin 8 JavaEE web 应用程序,它从门票仪表板演示中进行了改编和大量修改。我们正在计划将应用程序迁移到使用 Spring(非启动)并在下一个版本中采用 MVC 模型的时间表。然而,在阅读了 Vaadin Spring 文档并比较了当前应用程序、示例面包店应用程序(spring,使用 Framework 8)和使用 Hibernate 4 和 Spring 4 的旧项目之间的源代码之后,我们仍然有几个关键问题:需要帮助改进我们的迁移方法:

  1. 在某些功能首先迁移到 Spring 之后在后续的次要版本中迁移其他功能的情况下,是否可以逐步迁移?如果是,在进入较小的版本之前,我应该首先修改/适应哪些类(除了下面的类)到 Spring?

  2. 我们已经确定 75% 的应用程序使用复杂的本机选择查询,其中 25% 使用 CRUD 操作。我们仍然坚持使用 Hibernate,因为大多数开发团队都熟悉它。坚持使用 DAO 泛型方法(封装实现,例如https://www.baeldung.com/simplifying-the-data-access-layer-with-spring-and-java-generics)还是只使用在面包师应用程序中看到的 JPARepository 接口?

  3. 我们正在使用 TomEE Plume(相当于 Tomcat 的 8.5 版本)将应用程序部署到 Azure 云中作为初始部署。是否应包含任何特殊设置以适应该部署?

我们之前在 Vaadin 论坛中就逐步迁移提出了这个问题,但没有任何回复:https ://vaadin.com/forum/thread/17468362/17468363

在计划的迁移活动之后,我们的直接目标是:

  1. 使其模块化并更容易合并后续功能,例如动态数据路由、断路器/重新路由、电子邮件通知、国际化、在生产级别将可管理实例的数量保持在 5-10 等。

  2. 在接下来的几年内,无需从头开始重写所有内容,例如(Java 8 到 Java 11,Framework 8 到 Vaadin 12),保持升级的道路畅通。

如上所述,这是在 Azure Cloud 上运行,带有 MSSQL 数据库和 TomEE Plume 容器。

我们做了一些初步的代码修改,包括:

  1. 修改主 pom.xml 并包含更好的 maven 分析(使用https://www.mkyong.com/maven/maven-profiles-example/作为参考)

  2. 将休眠和弹簧设置移至 application.properties 文件

  3. 添加了application-context.xml,重新划分为application-context-dao.xml和application-context-service.xml,便于管理。

首先,在迁移的第一周后,我们预计应用程序仍然是 90% 的 JavaEE,并且一两个功能将在 Spring 中。在每周更新之后,现有功能的数量将转移到使用 Spring 直到它被完全合并。



函数式编程
浏览 100回答 1
1回答

一只名叫tom的猫

这种迁移是可能的。您有多个问题,我将只回答其中两个。可以逐步迁移吗? 是的,这是可能的,您可以首先将其集中在底层——如果是复杂的单体,您的 DAO 和存储库。或者您可以尝试将您的应用程序分割成小的逻辑单元并尝试迁移这些单元。此类切片的示例是,如果我们有电子商务网站一项计算商品价格的服务。它是一个定义明确的服务,可以很容易地被隔离。这样做还可以让您更好地了解您希望如何模块化应用程序。有时,尽管这种方法对于大型单体应用来说可能太难了,因为代码只是为了 sphagetti。Spring Data 现有 Daos 的使用和迁移。您不必使用 spring-data。拥有 DAOS 或手动编写的存储库非常好。在我看来,无需付出额外的努力,也无需为此类迁移做额外的工作。IMO 您在迁移过程中的主要目标应该是进行明智的模块化并将单体应用拆分为逻辑单元。我不是在谈论单独的可部署和微服务,没有必要走这么远。但从逻辑上拆分它可能会为您提供迁移地图。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java