首页 > 解决方案 > Spring Boot多模块项目中的Vaadin问题

问题描述

我编写了一个使用 Vaadin(最新版本)运行的示例 Spring Boot 项目。我只有一种观点:

@Route
public class MainView extends VerticalLayout {

用户界面就像一个魅力,然后我不得不在模块中重构项目。我将 SpringBootApplication 放在一个模块中,将 Vaadin 放在另一个模块中。我正在进入模块,所以我不知道它们是如何交互的,但我必须将启动 pom 中的依赖项放到 vaadin pom 中才能启动。现在它不起作用,当我调用 localhost 它说

无法导航到“”

原因:找不到''的路线

可用路线:

此详细消息仅在以开发模式运行时显示。

春季启动应用程序:

@SpringBootApplication
@ComponentScan(basePackages = {"my.app"})
@EntityScan(basePackages = {"my.app"})
@EnableJpaRepositories(basePackages = {"my.app"})
@EnableJpaAuditing
public class LicensemanagerApplication 

启动模块 pom.xml 依赖片段:

<dependency>
     <groupId>${project.groupId}</groupId>
      <artifactId>app_frontend</artifactId>
      <version>${project.version}</version>
      <scope>runtime</scope>
</dependency>

app_frontend 模块 pom.xml 依赖片段:

<dependency>
     <groupId>com.vaadin</groupId>
     <artifactId>vaadin-spring-boot-starter</artifactId>
 </dependency>
.............
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-bom</artifactId>
            <version>13.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

标签: javamavenspring-bootvaadin

解决方案


默认情况下,Vaadin 仅@Route在包含注释的同一包中查找带注释的类@SpringBootApplication。要使其在其他包中看起来,您需要将它们作为值传递给@EnableVaadin注释,例如@EnableVaadin({"my.app"}).


推荐阅读