Vaadin20:从 Pom 依赖项扫描 Java 代码

Tho*_*asH 1 vaadin vaadin-fusion vaadin20

我想将 Java 类放在使用 Vaadin@Endpoint注释(来自com.vaadin.flow.server.connect.Endpoint)的 Maven 工件中,以便在多个 Vaadin 项目中使用此类。

这是此类类的一个简单示例:

import com.vaadin.flow.server.connect.Endpoint;
import lombok.RequiredArgsConstructor;
import java.util.Optional;

@Endpoint
@RequiredArgsConstructor
public class SupportInfoEndpoint {

  public Optional<String> getSupportInfo(){
    return Optional.of("mailto:support@my.corp");
  }
}
Run Code Online (Sandbox Code Playgroud)

Maven 工件包括类的源代码。我必须做什么才能在使用项目中通过 Vaadin 构建过程扫描此类,以便

  • 生成前端对应的 TypeScript 代码
  • 该类包含在 Spring-Boot 应用程序中(因此端点实际上在运行时可用)

有可能吗?

mml*_*pez 5

就像 Erik 说的,它将用#9010实现。

但是根据某些限制,有一种解决方法。如果您在同一个 jar 中拥有端点需要的每个类,您可以通过调用 的目标“build-frontend”在同一个 jar 中触发打字稿生成vaadin-maven-plugin,然后生成打字稿,这只是一些 maven 魔法的问题将它们移动到META-INF/resources/frontend(类似于这里正在做的事情)。然后你就可以将端点打包在 jar 中。

对于在项目中注册的端点,你需要做类似的东西是什么这个类是干什么的,基本上是ServiceInitListener将执行该方法registerEndpointEndpointRegistry使用反射。

  • 将 ts 打包在后端 jar 中的好处是,前面的打字稿生成应该花费更少的时间,因为您将跳过重新生成未更改的内容(即:jar 中的类)。您仍然可以通过从 `@vaadin/flow-frontend/ generated` 导入 ts 来使用代码完成,就像插件在[此处](https://github.com/FlowingCode/AppLayoutAddon/blob/master/src/main/resources /META-INF/resources/frontend/fc-applayout/fc-fusion-layout.ts#L7)。 (2认同)