我有一个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"
}
此代码被忽略,在服务器启动时,我只能看到app-1公开的端点是可见的.
最佳答案
如果您将App2.jar作为依赖项包含在App1.jar中,最好的方法是导入App2的配置.如果你开始添加扫描和东西,你将把你的App1紧密耦合到你的App2. App1必须知道不需要的App2的实现细节.
如果只导入App2的配置,配置详细信息将保持封装状态.
我假设你有一个App1的Java Config类(或一个XML Config文件),另一个用于App2.我还假设App2的配置包含组件扫描和正确的基本包的所有必要注释.
如果是这种情况,您可以添加这样的导入,它应该立即工作:
@Configuration
@Import(SpringConfigurationApp2.class)
public class SpringConfigurationApp1 {
//... some beans....
}