2016-12-22 268 views
3

我有一个弹簧引导应用程序A,它是一个用于执行一些CRUD操作的弹簧数据服务。现在我想将这个A作为依赖项添加到另一个Spring引导应用程序B中,这个应用程序只是一个休息服务,用于访问A的各种方法。当我这样做并启动了B的Application类时,我看到应用程序A正在运行并且所有配置都是完成并停止。我想要实现的是应用程序B应该在8080上运行一个tomcat,以便我可以访问应用程序B的CRUD方法。有人可以帮我实现吗?将弹簧引导应用程序添加为另一个弹簧引导应用程序的依赖关系

在写这个问题之前,我没有搜索所有相关主题的论坛,但找不到解决方案。

+0

你使用gradle还是maven? –

+0

我正在使用gradle – lsiva

回答

1

我有一个弹簧启动应用程序A,它是一个弹簧数据服务 做一些CRUD操作。现在,我想这方面的一个作为依赖添加到 又一个春天启动应用程序B这仅仅是一个休息的服务,A的 接入各种方法

根据上述需求,我不知道你需要有两个Spring Boot应用程序。
有两个不同的Spring Boot基于Web的应用程序假定这两个应用程序需要物理分离。这种分离是有成本的,因为你必须设法让应用程序在它们之间进行通信:webservice,jms,rmi,jms等......并且你必须开发和维护两个Spring Boot应用程序,但是你说

春季启动应用程序B这仅仅是一个休息服务访问 的

各种方法,如果你想从B,为什么有两个休息服务调用A库方法,一条笔直的路不同的应用程序并使其更复杂?
与多个模块单个弹簧引导应用可以是更合适的和维护的解决方案:

- parent-my-app (super and parent project) 
| 
|----> repository-my-app module 
|  
| 
|----> rest-my-app module  
        |----> dependency on repository-my-app module 

最后,通过两个应用强烈的去耦两个层之间的通信具有成本和太具有两个弹簧引导应用的应对。
所以,如果你不需要它,你应该避免。

+0

这对我来说很有意义,根据你提到的项目结构,你可以指点我一些例子如何创建这个父模块和子模块? – lsiva

+0

我们试图这样做的另一个原因是,我们希望应用程序A被许多其他团队使用。不知道这是否可以按照你提到的方式实现。 – lsiva

+0

本页非常了解如何使用Gradle执行此操作:https://docs.gradle.org/current/userguide/intro_multi_project_builds.html#sec:structure_of_a_multiproject_build。它用Gradle解释了多项目的基础。此外,在Gradle文件夹中,查看samples/userguide文件夹,您有多个示例。 – davidxxx

0

您在寻找gradle中的multiproject版式。

你要添加的文件settings.gradle在您的主项目,并在里面可以添加您的子项目:

include 'api', 'shared' 

脚本build.gradle子项目是可选的。

相关问题