所有spring微服务的配置代码重复问题



有没有办法创建一个spring配置类并将其用于我的所有微服务?

现在我必须将一个重复的配置类复制到所有的微服务中。如果有更改,我必须在所有模块中进行更改。

我使用apachezookeeper将我的配置集中在一个地方。为了设置连接到zookeeper服务器的身份验证细节,我必须在spring@Configuration中为CuratorFramework类创建一个新的bean,在任何将其配置保存在zookeepper上的微服务中。

是的,您可以:

  • 创建一个具有配置的模块(maven、gradle-managed等等(。将所有公共bean添加到此模块中以供重用。这将是一种"基础设施">
  • 可选择添加spring.factories文件以自动"加载"配置
  • 在微服务中(每个微服务都应该在不同的模块中(,添加对该公共模块的依赖项

如果您添加了spring.factories-配置将自动加载,如果您没有添加,则必须在每个模块中显式导入此配置。但在任何情况下,您都不需要重复代码。

SO中有很多关于弹簧工厂的教程/线程,所以如果你不熟悉这个功能,你可以在这里阅读,例如

如果一个系统有很多常见的东西,而且这些东西经常变化,那么它就是一个整体。也许你拆分为微服务并不是最好的方法。

关于共同的东西,你有3个选择:

  • 复制/粘贴(就像现在一样(
  • 中断库(每个微服务都依赖于一个公共模块(
  • 在他自己的微服务中隔离东西

请记住,DRY在一个微服务内必须严格,但在微服务之间可以放松。

最新更新