gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:35:32 26 4
gpt4 key购买 nike

我想用 oAuth 实现替换 Spring Cloud Config Server 的基本身份验证。我们暂时先不谈配置服务器,重点关注配置客户端的更改。显然我不想为整个事情编写自己的实现,而是执行我自己的逻辑并在标准配置客户端上回退。另外,我必须将更改打包到库中,因为我将在多个微服务中使用它。

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

1a。创建自定义 Starter,其中将包含 Spring Cloud Config Client 作为依赖项。这是可行的还是必要的?

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

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. 创建新包,该包将在 Spring Cloud Config Client 之上/之前执行。这里有两个主要特点:

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

    • 在 {YOUR_CLASS} 中应用自定义逻辑。不要忘记使用 @org.springframework.core.annotation.Order({YOUR_PRECEDENCE}) 并且事实上 Ordered.LOWEST_PRECEDENCE首先执行

  2. 从上一步构建 jar 并将其包含到您的项目中(作为本地文件或通过 Artifact )

  3. 将自定义逻辑添加到 Spring Cloud Config Server,以便它可以使用 JWT。

工作示例在这里:https://github.com/ka4ok85/spring-cloud-config-client-jwt

关于java - 扩展 Spring Cloud Config Client 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45260122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com