2016-02-05 125 views
3

我们将使用Spring Boot来创建服务。我们最初的想法是每个服务(不一定是微服务)都是独立的,并且被部署为一个.jar文件。 Maven构建。Spring Boot项目设置设计决策

我不知道这将是一个很好的春季启动的项目结构,为每个服务将是自包含的,但我猜的服务将仍然有可以或应该服务

之间重复使用一些代码/实体

选项:

  1. 每个服务是一个独立的春天启动的项目。仅实现实际服务所需的实体,控制器和实用程序。

    好:每个服务是完全独立的

    坏:有关需要的服务之间被重新使用的自定义工具类是什么?那些服务可能需要共享的域对象呢?

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

感谢您的帮助!

+1

对于自定义实用程序点,你可以认为ab为它创建一个Maven依赖关系。您可以在一个地方找到自定义实用程序,并且可以使用该版本处理更改。 – Patrick

回答

1

将通用逻辑放入单独的精简JAR中,将其放入您的工件存储库中,并将其与服务分开放置。这个共同的库将作为独立项目来生活(类似于你在项目中使用的其他JAR依赖项)。

每个服务都将使用这个JAR/s作为正常的依赖关系。

我在队,在那里我们使用这种方法进行工作:

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