Spring Boot项目设置设计决策

时间:2016-02-05 11:50:38

标签: java spring spring-boot microservices

我们将使用Spring Boot来创建服务。我们最初的想法是每个服务(不一定是微服务)都是自包含的,并部署为.jar文件。 Maven for build。

我想知道什么是一个好的Spring Boot项目结构,因为每个服务都是自包含的,但我猜测服务仍然会有一些代码/实体可以或应该在它们之间重用服务

选项:

  1. 每个服务都是一个独立的Spring Boot项目。仅实现实际服务所需的实体,控制器和工具。

    好:每项服务都是完全独立的

    错:那些需要在服务之间重用的自定义实用程序类呢?那些服务可能需要共享的域对象呢?

  2. 所有服务都在同一代码库中创建。所有服务都可以从所有其他服务中重用实用程序,控制器等 好:易于重复使用 不好:JVM现在可以服务所有服务电话了吗?服务边界现在由负载均衡器处理?

  3. 感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

将公共逻辑放入单独的瘦JAR中,将其与服务分开放置在工件存储库和版本中。这个通用的库将作为独立项目生活(与您在项目中使用的其他JAR依赖项类似)。

每个服务都将此JAR / s用作正常依赖项。

我在团队中工作,我们使用这种方法:

  1. 验证码
  2. 用于记录的AOP
  3. 一些常见的验证码
  4. 一些常见的域对象
  5. 异常处理