首页 文章

扩展Spring Cloud Config Client的正确方法是什么?

提问于
浏览
1

我想用oAuth实现替换Spring Cloud Config Server的基本身份验证 . 让我们暂时离开Config Server,关注Config Client的更改 . 显然,我不想为整个事情编写自己的实现,而是在标准的Config Client上执行我自己的逻辑和回退 . 此外,我必须将我的更改打包到库中,因为我将在多个微服务中使用它 .

长话短说我想实现以下目标:

1A . 创建自定义Starter,其中包含Spring Cloud Config Client作为依赖项 . 它甚至是可行的还是必要的?

要么

1B . 仅使用我的自定义逻辑创建自定义Starter,该逻辑将在Spring Cloud Config Client之前执行 . 在这种情况下,每个微服务都将具有Spring Cloud Config Client和自定义Starter作为依赖项 . 如何管理执行顺序并将自定义逻辑结果注入Config Client?

2.介绍新的引导程序设置 . 例如spring.cloud.config.custom.username和spring.cloud.config.custom.password(可选) .

3.为自定义Starter引入自定义注释 . 例如@enableCustomConfigClient(可选) .

我开始使用/resources/META-INF/spring.factories中的以下代码构建自定义Starter:

# Bootstrap components
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.example.greeter.config.ConfigClientBootstrapConfiguration

但是在设置配置文件之后调用此代码,而不是像Config Client那样的第一个代码 .

任何建议,特别是代码示例表示赞赏 . 谢谢!

1 回答

  • 1

    发布方法我选择以供将来参考 .

    • 创建将在Spring Cloud Config Client之前/之前执行的新软件包 . 这里有两个主要特征:

    • 使用org.springframework.cloud.bootstrap.BootstrapConfiguration = 创建文件 src/main/resources/META-INF/spring.factories

    • 中应用自定义逻辑 . 不要忘记使用 @org.springframework.core.annotation.Order() 以及将执行 Ordered.LOWEST_PRECEDENCE 的事实 first

    • 从上一步构建jar并将其包含在项目中(作为本地文件或通过artifactory)

    • 向Spring Cloud Config Server添加自定义逻辑,以便它可以使用JWT .

    工作示例如下:https://github.com/ka4ok85/spring-cloud-config-client-jwt

相关问题