Spring启动服务通信

时间:2017-09-19 15:31:55

标签: spring-boot

我正在Spring boot中开发服务。

所以我想说我有2项服务 - A,B。

服务A有一个API A1(),它返回一些类customObject说

class CustomObject{
   int id;
   String name;
     .... +n more properties
}

因此,从我的API,我返回CustomObject的对象,并从我的API返回相应的JSON。(使用@RestController)

现在服务B正在调用此API。所以它调用服务A的A1()api(使用RestTemplate / Feign Client),获取JSON,现在访问它,我必须在服务B中创建CustomObject以将JSON映射到Object。

这就是问题所在。我不希望我的服务相互依赖,但是这两个服务都创建了customObject。如果对服务A中的CustomObject进行了任何更改,则需要在服务B中包含相同的更改。

那应该是更好的解决方案呢?

2 个答案:

答案 0 :(得分:0)

创建简单项目,收集您的DTO课程。把它推到你的maven repo(例如nexus)。然后将其添加到每个项目中的依赖项。

答案 1 :(得分:0)

以下是模式,我们遵循:

serviceA
       |_ serviceA-model (CustomObject goes here)
       |_ serviceA-service

serviceB
       |_ serviceB-model
       |_ serviceB-service

serviceB项目导入serviceA-model。它帮助我们避免了大量的代码重复。