Spring 引导项目设置设计决策
Spring Boot project setup design decisions
我们将使用 Spring 启动来创建服务。我们最初的想法是每个服务(不一定是微服务)都是独立的,并部署为 .jar 文件。用于构建的 Maven。
我想知道什么是好的 Spring 引导项目结构,因为每个服务都是独立的,但我猜服务仍然会有一些 code/entities 可以或应该在服务之间重用
选项:
每个服务都是一个独立的 Spring 引导项目。仅实现实际服务所需的实体、控制器和实用程序。
好:每个服务都是完全独立的
不好:需要在服务之间重复使用的自定义实用程序 类 怎么样?服务可能需要共享的域对象呢?
所有服务都是在同一个代码库中创建的。所有服务都可以重用所有其他服务的实用程序、控制器等
好:易于重复使用
不好:JVM 现在能够为所有服务调用提供服务吗?服务边界现在由负载平衡器处理?
感谢您的帮助!
将通用逻辑放入单独的精简 JAR 中,将其放入工件存储库中,并与服务分开版本。这个通用 library/ies 将作为独立项目存在(类似于您在项目中使用的其他 JAR 依赖项)。
每个服务都将使用此 JAR/s 作为正常依赖项。
我在团队中工作,我们将这种方法用于:
- 验证码
- 用于日志记录的 AOP
- 一些常用的验证码
- 一些常见的域对象
- 异常处理
我们将使用 Spring 启动来创建服务。我们最初的想法是每个服务(不一定是微服务)都是独立的,并部署为 .jar 文件。用于构建的 Maven。
我想知道什么是好的 Spring 引导项目结构,因为每个服务都是独立的,但我猜服务仍然会有一些 code/entities 可以或应该在服务之间重用
选项:
每个服务都是一个独立的 Spring 引导项目。仅实现实际服务所需的实体、控制器和实用程序。
好:每个服务都是完全独立的
不好:需要在服务之间重复使用的自定义实用程序 类 怎么样?服务可能需要共享的域对象呢?
所有服务都是在同一个代码库中创建的。所有服务都可以重用所有其他服务的实用程序、控制器等 好:易于重复使用 不好:JVM 现在能够为所有服务调用提供服务吗?服务边界现在由负载平衡器处理?
感谢您的帮助!
将通用逻辑放入单独的精简 JAR 中,将其放入工件存储库中,并与服务分开版本。这个通用 library/ies 将作为独立项目存在(类似于您在项目中使用的其他 JAR 依赖项)。
每个服务都将使用此 JAR/s 作为正常依赖项。
我在团队中工作,我们将这种方法用于:
- 验证码
- 用于日志记录的 AOP
- 一些常用的验证码
- 一些常见的域对象
- 异常处理