是否可以在 spring Boot 中解析依赖 JAR 文件的 REST 端点

我有 2 个 Spring boot jar,它们可以作为 2 个独立的应用程序正常工作,但是,我被要求将 2 个 jar 合并到一个应用程序中


我认为最简单的事情是将 app-2 作为 maven 依赖项添加到 app-1 中,但问题是当 app-1 启动时,它只识别 app-1 REST 端点,而完全忽略 app-2 的 REST 端点。


我希望当 app-1 启动时它会自动选择 app-2 中声明的端点


@RestController

Class2{


@GetMapping(/hello-from-app2)

public String myapp2(){

  return "HELLO FROM APP2"

}

此代码被忽略,在服务器启动时,我只能看到 app-1 公开的端点可见。


偶然的你
浏览 193回答 2
2回答

月关宝盒

如果您将 App2.jar 作为依赖项包含在 App1.jar 中,最好的方法是导入 App2 的配置。如果您开始添加扫描和内容,您会将 App1 与 App2 紧密耦合。App1 必须知道不需要的 App2 的实现细节。如果只是导入 App2 的配置,配置细节会保持封装状态。我假设您有一个用于 App1 的 Java 配置类(或一个 XML 配置文件)和另一个用于 App2 的类。我还假设 App2 的配置包含所有必要的组件扫描注释和正确的基础包。如果是这种情况,您可以添加这样的导入,它应该立即起作用:@Configuration@Import(SpringConfigurationApp2.class)public class SpringConfigurationApp1 {//... some beans....}

慕哥6287543

我看到了@Diego 提供的答案,但该用户需要在客户端应用程序中进行更改。(例如@Import(SpringConfigurationApp2.class)这里)。我有另一种方法,客户端(App-1)不需要对应用程序进行任何更改。它只会无缝地工作。这种方法是通过使用 spring 的自动配置,并且 spring-boot 依赖项使用相同的功能。这是我使用自动配置实现的答案。对于 App-2,1)spring.factories在resources/META-INF下创建文件2) 添加 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ path-to-app-2-application/SpringConfigurationApp2对于 App-1,只需将 App-2 作为 maven 依赖项包含在内即可。这是获取有关https://dzone.com/articles/what-is-spring-boot-auto-configuration 的更多信息的链接。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java