Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展Spring云配置客户端的正确方法是什么?_Java_Spring_Spring Cloud_Spring Cloud Config - Fatal编程技术网

Java 扩展Spring云配置客户端的正确方法是什么?

Java 扩展Spring云配置客户端的正确方法是什么?,java,spring,spring-cloud,spring-cloud-config,Java,Spring,Spring Cloud,Spring Cloud Config,我想用oAuth实现替换SpringCloudConfigServer的基本身份验证。让我们暂时不讨论配置服务器,重点讨论配置客户端的更改。显然,我不想为整件事编写自己的实现,而是执行自己的逻辑并在标准配置客户机上回退。我还必须将我的更改打包到库中,因为我将在多个微服务中使用它 长话短说,我想实现以下目标: 1a。创建将包含SpringCloudConfigClient作为依赖项的自定义启动程序。这是可行的还是必要的 或 1b。使用我的自定义逻辑创建自定义启动器,该逻辑将在SpringCloud

我想用oAuth实现替换SpringCloudConfigServer的基本身份验证。让我们暂时不讨论配置服务器,重点讨论配置客户端的更改。显然,我不想为整件事编写自己的实现,而是执行自己的逻辑并在标准配置客户机上回退。我还必须将我的更改打包到库中,因为我将在多个微服务中使用它

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

1a。创建将包含SpringCloudConfigClient作为依赖项的自定义启动程序。这是可行的还是必要的

1b。使用我的自定义逻辑创建自定义启动器,该逻辑将在SpringCloudConfigClient之前执行。在这种情况下,每个微服务都将有SpringCloudConfigClient和定制Starter作为依赖项。如何管理执行顺序并将自定义逻辑结果注入配置客户端

2.引入新的引导设置。e、 g.spring.cloud.config.custom.username和spring.cloud.config.custom.password(可选)

3.为自定义启动器引入自定义注释。e、 g.@enableCustomConfigClient(可选)

我首先在/resources/META-INF/spring.factories中使用以下代码构建定制启动程序:

# Bootstrap components
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.example.greeter.config.ConfigClientBootstrapConfiguration
但这段代码是在设置概要文件后调用的,而不是像配置客户机那样的第一件事


如有任何建议,尤其是代码示例,我们将不胜感激。谢谢

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

  • 创建新的包,该包将在SpringCloudConfig客户端之上/之前执行。这里有两个主要特点:

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

    • 在{YOUR_CLASS}中应用自定义逻辑。别忘了使用@org.springframework.core.annotation.Order({YOUR_preference})以及排序的事实。最低优先级将首先执行

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

  • 向SpringCloudConfigServer添加自定义逻辑,以便它可以使用JWT


  • 工作示例如下:

    您需要正确的order@spencergibb谢谢你能详细说明一下吗?也许有代码样本?1b正确吗?再次谢谢你,斯宾塞。我想我明白了。值得注意的是,最低优先级将首先执行,但不是最后执行:@Order(Ordered.LOWEST\u priority)。稍后我会发布更多细节,以供将来参考。以防万一有人会有同样的问题。