【问题标题】:Multi-Module Maven Project for functional independent Views用于功能独立视图的多模块 Maven 项目
【发布时间】:2019-03-17 12:32:00
【问题描述】:

我想我只是找不到正确的 google 搜索词组,所以我尝试在这里提问。

我尝试建立一个 Maven 项目,它应该满足以下功能和技术要求:

  • 应该只有 1 个应用程序和 1 个用户登录
  • 每个用户可以有不同的用户角色,以便他可以访问不同的功能问题。
  • 应在独立的服务(单一职责原则)中实施每个可能的操作,以避免随着时间的推移出现紧密耦合。
  • 应该是带有 vaadin 的 spring-boot 应用程序
  • 独立的模块最终应该在组合到一个应用程序时使用相同的数据库。

我现在的问题是:是否有任何指南如何设置一个项目,我想在其中独立实现不同功能问题的功能,然后将它们组合到 1 个具有 1 个登录和 1 个数据库的单个应用程序(用户自然不不想为每个功能问题启动单独的应用程序)?

我希望每个功能问题尽可能保持独立以避免紧密耦合,但我只是不知道如何在实施阶段结束时将它们组合成 1 个具有 1 个授权和身份验证服务的单个应用程序。

对指南或架构风格名称的任何提示都表示赞赏。

【问题讨论】:

  • 为什么你的 Maven 项目必须是多模块的?您可以通过定义多个类来分离您的功能,每个类都是 Vaadin 类 UI 的子类。
  • “必须”是一个硬词。这是 - 就像我在自我接受的答案中提到的那样:-) - 设置的一个想法。问题是,随着时间的推移,同一个项目中的子类往往会依赖于我想要避免的其他类,因为新员工不知道如何避免新功能的紧密耦合。但我已经找到了我喜欢的解决方案(微应用)。

标签: maven spring-boot vaadin multi-module


【解决方案1】:

我猜我只是被我的想法误导了。真正的微服务方法是开发自己的微服务,提供 UI 并通过 REST(或类似的东西)调用其他服务。

Microservices

所以我将开发一个 Maven 工件,它代表具有身份验证和授权的 UI 以及许多其他 Maven 工件,然后可以通过 RESTful API 调用它们。如果有人对单页应用程序和微应用程序感兴趣,有一篇好文章(不幸的是德语):Singe Page Applications and Micro-Apps

【讨论】:

    【解决方案2】:

    我相信您需要的是一个多 UI Vaadin 应用程序,其中一个代码库定义多个 UI。这可以使用 Vaadin CDI Servlet 来实现。 你可以看看this blog post

    【讨论】:

    • OP 似乎正在使用 Spring Boot(从添加到帖子中的标签来看)。我不认为 CDI servlet 会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2018-11-28
    • 1970-01-01
    • 2014-10-13
    • 2014-09-26
    • 2018-02-06
    相关资源
    最近更新 更多