【发布时间】:2019-07-24 15:04:26
【问题描述】:
对于一个项目,我们会开发一些微服务。他们将有许多共同的部分,如配置类、过滤器...... 我搜索最佳实践和方法来开发它。
目前,我已经创建了一个通用的微服务,由所有人分叉来开发它上面的模块。但不方便,对一个 Web 服务的一些修改可能会导致通用 MS 的下一次合并有些困难。
您有任何开发它的想法或启发我的资源吗?
感谢您的回复。
【问题讨论】:
对于一个项目,我们会开发一些微服务。他们将有许多共同的部分,如配置类、过滤器...... 我搜索最佳实践和方法来开发它。
目前,我已经创建了一个通用的微服务,由所有人分叉来开发它上面的模块。但不方便,对一个 Web 服务的一些修改可能会导致通用 MS 的下一次合并有些困难。
您有任何开发它的想法或启发我的资源吗?
感谢您的回复。
【问题讨论】:
创建一个或多个包含实现共享功能的抽象类的库。
将一个或多个库导入到每个单独的项目中。
在各个项目中扩展抽象类。
使用 Spring 注解(例如 @Component 或 @RestController) 在各个项目中, 不在公共库中。
在公共库中使用一些 Spring 注释(例如 @Scheduled)。 如果您这样做,请允许各个项目覆盖这些注释中的值。 例如,
@Scheduled(initialDelayString = "${common.thing.initialDelayString:10_000}",
fixedDelayString = "${common.thing.fixedDelayString:60_000}")
示例注释包括默认值,并允许各个项目根据需要覆盖这些值。
【讨论】: