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

Abh*_*oda 6 java spring spring-boot

我有一个2个Spring引导罐,可以作为2个独立的应用程序正常工作,但是,我被要求将2个罐子合并到一个应用程序中

我认为最简单的方法是将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"
}
Run Code Online (Sandbox Code Playgroud)

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

Die*_* M. 2

如果您将 App2.jar 作为依赖项包含到 App1.jar 中,则最好的方法是导入 App2 的配置。如果您开始添加扫描和其他内容,您将把 App1 与 App2 紧密耦合。App1 必须了解 App2 的实现细节,而 App2 则不需要。

如果您只导入 App2 的配置,配置详细信息将保持封装状态。

我假设您有一个用于 App1 的 Java Config 类(或一个 XML 配置文件)和另一个用于 App2 的 Java Config 类(或 XML 配置文件)。我还假设 App2 的配置包含组件扫描和正确的基础包的所有必要注释。

如果是这种情况,您可以添加这样的导入,它应该立即起作用:

@Configuration
@Import(SpringConfigurationApp2.class)
public class SpringConfigurationApp1 {

//... some beans....

}
Run Code Online (Sandbox Code Playgroud)