You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin20如何扫描Maven依赖中带@Endpoint注解的Java类

这个需求完全可以实现,你只需要分别对公共Maven构件和引用该构件的Vaadin项目做如下配置即可:

公共Maven构件侧配置
  • 首先调整构件的依赖配置,将Vaadin、Lombok等公共依赖的scope设为provided,避免和引入项目的依赖版本冲突,Maven依赖示例如下:
<dependencies>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>flow-server</artifactId>
        <version>和业务项目匹配的Vaadin版本号</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>你的Lombok版本号</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
  • 新增Spring Boot自动配置类,用于自动扫描公共构件内的Endpoint类,示例如下:
package com.yourcorp.vaadin.endpoint;// 替换为你实际的Endpoint所在包
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.yourcorp.vaadin.endpoint")
public class VaadinCommonEndpointAutoConfiguration {
}
  • 在公共构件的src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中新增一行自动配置类的全限定名,让引用构件的Spring Boot项目可以自动加载该配置:
com.yourcorp.vaadin.endpoint.VaadinCommonEndpointAutoConfiguration
引用构件的Vaadin项目侧配置

运行时可正常访问端点的配置

只要项目正确引入了上述公共Maven构件,Spring Boot启动时会自动加载公共构件的自动配置,将@Endpoint注解的类注册为Spring Bean,运行时即可正常访问端点,无需额外特殊配置。如果你的项目自定义了Endpoint扫描规则,把公共构件的Endpoint包路径加到你自定义的扫描路径中即可。

前端生成对应TypeScript代码的配置

需要在项目的配置文件(application.properties或application.yml)中添加Vaadin Endpoint扫描包配置,把公共构件的Endpoint所在包路径加入扫描列表:

# application.properties配置示例
vaadin.endpoint-packages=com.yourcorp.vaadin.endpoint,你本地项目的Endpoint包路径

配置后Vaadin构建插件在执行构建流程时,就会自动扫描所有指定包下的@Endpoint类,生成对应的前端TypeScript调用代码。

注意:请保持公共构件的Vaadin版本和业务项目的Vaadin版本完全一致,避免出现兼容性问题。

内容的提问来源于stack exchange,提问作者ThomasH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:48:01