我们遵循微服务拱门为我们的应用程序开发使用弹簧引导。为了解释这个问题,让我们考虑3种不同的服务A、B、C。服务C的一些API也被服务A和B使用。
我为项目C(服务C)中的API提供了一个DTO。我的问题是-对于项目A& B,我是否应该创建冗余的DTO类来使用Service?或者我应该为DTO创建一个单独的jar --这样它就可以在多个服务中重用?
如果你遇到过类似的情况,你采取的方法是什么?
发布于 2019-04-23 01:08:25
我认为这取决于某些特定的用途。
如果DTO是在项目的许多模块中使用的公共类,那么它应该包含在common模块中。
还有另一种解决方案,我认为您可以将服务C当作API服务(比如Google )。因此,当您为客户提供服务时,您应该为客户提供一个库。因此,在开发服务C之后,您可以开发包含其客户端所需的DTO的C service library。
要使用C服务中的API,A和B需要导入C service library并调用(new CService()).getSomething()
发布于 2019-04-23 01:21:09
在项目中创建common (例如: com.example.common)包。然后,创建一个名为dto (例如: com.example.common.dto)的子包,并将所有DTO放在所有服务中,这些DTO通常用于所有服务。
应采取这一办法。
发布于 2019-04-23 03:15:05
是的,您可以将它们放在单独的jar API中,并且可以在依赖项中使用这个jar。这将很有帮助,因为您甚至可以在这个commons包中编写一些接口(用于服务)或一些实用类,比如加密/解密(用于auth),并在您的任何微服务中实现它们。
https://stackoverflow.com/questions/55802876
复制相似问题