我们有一个现有的 Vaadin 8 JavaEE web 应用程序,它从门票仪表板演示中进行了改编和大量修改。我们正在计划将应用程序迁移到使用 Spring(非启动)并在下一个版本中采用 MVC 模型的时间表。然而,在阅读了 Vaadin Spring 文档并比较了当前应用程序、示例面包店应用程序(spring,使用 Framework 8)和使用 Hibernate 4 和 Spring 4 的旧项目之间的源代码之后,我们仍然有几个关键问题:需要帮助改进我们的迁移方法:
在某些功能首先迁移到 Spring 之后在后续的次要版本中迁移其他功能的情况下,是否可以逐步迁移?如果是,在进入较小的版本之前,我应该首先修改/适应哪些类(除了下面的类)到 Spring?
我们已经确定 75% 的应用程序使用复杂的本机选择查询,其中 25% 使用 CRUD 操作。我们仍然坚持使用 Hibernate,因为大多数开发团队都熟悉它。坚持使用 DAO 泛型方法(封装实现,例如https://www.baeldung.com/simplifying-the-data-access-layer-with-spring-and-java-generics)还是只使用在面包师应用程序中看到的 JPARepository 接口?
我们正在使用 TomEE Plume(相当于 Tomcat 的 8.5 版本)将应用程序部署到 Azure 云中作为初始部署。是否应包含任何特殊设置以适应该部署?
我们之前在 Vaadin 论坛中就逐步迁移提出了这个问题,但没有任何回复:https ://vaadin.com/forum/thread/17468362/17468363
在计划的迁移活动之后,我们的直接目标是:
使其模块化并更容易合并后续功能,例如动态数据路由、断路器/重新路由、电子邮件通知、国际化、在生产级别将可管理实例的数量保持在 5-10 等。
在接下来的几年内,无需从头开始重写所有内容,例如(Java 8 到 Java 11,Framework 8 到 Vaadin 12),保持升级的道路畅通。
如上所述,这是在 Azure Cloud 上运行,带有 MSSQL 数据库和 TomEE Plume 容器。
我们做了一些初步的代码修改,包括:
修改主 pom.xml 并包含更好的 maven 分析(使用https://www.mkyong.com/maven/maven-profiles-example/作为参考)
将休眠和弹簧设置移至 application.properties 文件
添加了application-context.xml,重新划分为application-context-dao.xml和application-context-service.xml,便于管理。
首先,在迁移的第一周后,我们预计应用程序仍然是 90% 的 JavaEE,并且一两个功能将在 Spring 中。在每周更新之后,现有功能的数量将转移到使用 Spring 直到它被完全合并。
一只名叫tom的猫
相关分类