我们将使用Spring Boot来创建服务。我们最初的想法是每个服务(不一定是微服务)都是自包含的,并部署为.jar文件。 Maven for build。
我想知道什么是一个好的Spring Boot项目结构,因为每个服务都是自包含的,但我猜测服务仍然会有一些代码/实体可以或应该在它们之间重用服务
选项:
每个服务都是一个独立的Spring Boot项目。仅实现实际服务所需的实体,控制器和工具。
好:每项服务都是完全独立的
错:那些需要在服务之间重用的自定义实用程序类呢?那些服务可能需要共享的域对象呢?
所有服务都在同一代码库中创建。所有服务都可以从所有其他服务中重用实用程序,控制器等 好:易于重复使用 不好:JVM现在可以服务所有服务电话了吗?服务边界现在由负载均衡器处理?
感谢您的帮助!
答案 0 :(得分:2)
将公共逻辑放入单独的瘦JAR中,将其与服务分开放置在工件存储库和版本中。这个通用的库将作为独立项目生活(与您在项目中使用的其他JAR依赖项类似)。
每个服务都将此JAR / s用作正常依赖项。
我在团队中工作,我们使用这种方法: