如何解决多模块 Vaadin 项目,其中路由视图位于独立模块中
我正在构思一个非常庞大的 vaadin 应用程序,它由一个骨架(提供 ui 框架)和数百个功能单元(提供特定的 vaadin 视图)组成。
主要的架构点是让骨架对功能单元不可知,因此不应将单个 java 对功能单元的依赖注入到骨架中。每个单独的功能单元都必须在它自己独特的 JAR 中。
vaadin 容器由骨架模块启动。完全可以构建一个导航,其中包含通往功能单元 (/routeToView001.../routeToView999) 的所有必要路线,而无需了解有关它们的更多详细信息。
但是,我没有看到,当浏览器中发生导航时,启动的 vaadin spring boot 容器将如何从独立的 JAR 加载 java 类。实际尝试失败。有什么想法吗?
解决方法
Spring Boot 集成默认在包含 @Route
类的 Java 包中查找 @SpringBootApplication
类。这可以通过将包名称传递给 @EnableVaadin
注释来进一步配置。
我没有在实践中对此进行过测试,但可能有多个 @EnableVaadin
注释,以便每个模块中都有一个注释,并且通过该注释还提供多个位置来查找 {{1}来自的课程。在这种情况下,每个模块中的 @Route
类也必须使用常规 Spring Boot 自动配置机制以与任何其他 @EnableVaadin
相同的方式注册自己。
另一种选择是您手动将路由类注册到应用程序的路由注册表(使用 @Configuration
访问)。在这种情况下,您可能仍然需要在基本模块中至少有一个虚拟 ApplicationRouteRegistry.getInstance(new VaadinServletContext(servletContext))
,因为除非在常规模块中发现至少一个 @Route
类,否则 Vaadin 可能不会在 Spring Boot 环境中自动启用自己方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。