Vaadin7架构

Vaadin7 architecture

我们目前正在规划我们的项目并决定使用 Vaadin。现在我们有点难以弄清楚如何在不花费太多时间的情况下很好地组织我们的代码。看起来 MVP 对 vaadin 来说是一个很好的实践,但是我们都是这个框架的新手,而且似乎很多人都在为它而苦苦挣扎。在我们的研究过程中,我们注意到只有非常抽象的教程和过时的框架。在 vaadin 书中还推荐了我们想要使用的分层架构。我们的应用程序并不太复杂(与通常的业务后端相比)。 是否有一个优雅而简单的解决方案来解耦视图,同时还使用设计器? 我们还计划使用 Spring 安全和 UI。 提前致谢

在我最近的项目中,我将 Spring 与 Vaadin 一起使用,尽管添加了很多样板文件,但您的 classes 会更小、组织得更好、责任单一。就我而言,我遵循以下架构:

  • 布局:class 包含 UI 个元素,它是 design/layout。

  • 控制器:处理布局具有的所有事件和用户操作。一个控制器只负责一个布局。

  • 视图:视图class是特定URI片段的主要"controller"。如果它变得太复杂或带有子视图,则会创建并注入控制器 class。

  • 服务:包含数据的业务逻辑。当 "Controller" 处理用户交互时,服务负责业务逻辑和数据。

  • 存储库:SpringData JPA 存储库。实施 CRUD 操作和自定义查询。

  • 模型:数据库实体。

额外包裹:

  • 事件:我建议在应用程序旁边使用 EventBus。

  • 帮助者:对于那些你不知道它真正适合的东西。

  • 配置:从 application.properties 获取的配置和属性(如果使用 SpringBoot)。

使用此模式,您将避免以意大利面条代码结束并混淆相同的职责 class。关于 Vaadin Designer,使用此模式它是完全独立的,因为您的布局可以是纯 java 或伪 html。