创建binder时,Spring Cloud config + 总线对配置服务器调用两次

2024-01-08

我使用 spring-cloud-config 和 spring-cloud-bus 创建了一个简单的项目。由于某种原因,配置客户端两次调用配置服务器。第一次发生在创建引导程序的上下文时(预期的行为是什么),但第二次发生在创建绑定器的上下文时调用。

这是在课堂上完成的:

DefaultBinderFactory#getBinderInstance:

// If the environment is not customized and a main context is available, we
// will set the latter as parent.
// This ensures that the defaults and user-defined customizations (e.g. custom
// connection factory beans)
// are propagated to the binder context. If the environment is customized,
// then the binder context should
// not inherit any beans from the parent
boolean useApplicationContextAsParent = binderProperties.isEmpty() && this.context != null;
if (useApplicationContextAsParent) {
    springApplicationBuilder.parent(this.context);
}
if (useApplicationContextAsParent || (environment != null && binderConfiguration.isInheritEnvironment())) {
    if (environment != null) {
        StandardEnvironment binderEnvironment = new StandardEnvironment();
        binderEnvironment.merge(environment);
        springApplicationBuilder.environment(binderEnvironment);
    }
}
ConfigurableApplicationContext binderProducingContext = springApplicationBuilder
        .run(args.toArray(new String[args.size()]));

当执行以下语句时:

ConfigurableApplicationContext binderProducingContext = springApplicationBuilder
    .run(args.toArray(new String[args.size()]));

据我在代码中看到,绑定器的上下文与应用程序的上下文不同。看来再次调用配置服务器的原因是 spring-cloud-context 使用初始值设定项创建其上下文属性源引导配置由监听器加载Bootstrap应用监听器 .

所以,我的问题是:这是预期的行为吗?我假设配置客户端在启动时应该只向服务器发出一个请求。如果不正确,请问原因是什么?

我正在使用的版本包含在: spring-cloud-dependencies,版本 Edgware.RELEASE

提前谢谢了!


是的;这是预期的; Spring Cloud Stream Binder被加载到它自己的Spring Boot应用程序中(它可以有不同的环境变量)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建binder时,Spring Cloud config + 总线对配置服务器调用两次 的相关文章

  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Netbeans 8 不会重新加载静态 Thymeleaf 文件

    我通过 Maven 使用 Spring Boot 和 Thymeleaf 当我进行更改时 我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件 为了看到更改 我需要进行完整的清理 构建 运行 这需要太长的时间
  • 在 Spring Boot 应用程序中自动装配 ObjectMapper

    我需要在 Spring boot 应用程序中使用默认的 ObjectMapper 作为单例实例 我可以简单地在我的应用程序中 autowire ObjectMapper 在Spring boot应用程序中默认创建的实例 而不创建 Bean
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • 为什么 foreman gem 忽略 PORT 环境变量?

    我希望 foreman gem 使用我的开发环境文件中提供的 PORT 值 而不是使用它自己的值 我的文件设置如下所示 启动 foreman 的 bash 脚本 工头启动 edevelopment env development env 文
  • kotlin中如何通过反射获取参数名称?

    java8 有 parameters 参数 传递给编译器 那么 kotlin 呢 正如我所看到的 kotlin 编译器将带有参数名称的 JetValueParameter 注释添加到参数中 但其中一个已被废弃 Update Reflecti
  • 了解 JavaScript setTimeout 和 setInterval

    我需要一些帮助来理解和学习如何控制这些功能来完成我想要它们做的事情 基本上 我有 Java 背景 并通过 Pong 游戏 项目深入研究 JavaScript 我已经设法通过 setInteval 每 20 毫秒调用我的主游戏循环来运行游戏
  • TeamCity 休息 API

    如何获取 teamcity 构建的变化 我得到以下 URL 其中列出了所有构建更改 并提供了一个我们可以查看更改的 URL http teamcityserver httpAuth app rest changes buildType id
  • 如何在 ASP.NET 中获取“YYYY-MM-DD”格式的当前日期?

    如何在 ASP NET 中获取 YYYY MM DD 格式的当前日期 您使用的是哪个 WebControl 你试过了吗 DateTime Now ToString yyyy MM dd
  • 这两段代码有什么区别吗?

    include
  • 从命令行运行 JAR 文件并指定类路径

    我整理了一个JAR http en wikipedia org wiki JAR 28file format 29文件并在清单中指定了主类 我使用了 EclipseExport功能 我的依赖项都在标记为的目录中lib 我似乎无法得到关于如何
  • 为什么我的 VBA 代码会抛出“无效的外部过程”错误?

    我一生都无法弄清楚为什么以下代码会抛出编译错误并显示消息 无效的外部过程 它突出显示下面带星号的行上的错误 Option Explicit Dim shtThisSheet As Worksheets Set shtThisSheet Ap
  • JavaScript:如何确定运行时(又称浏览器)的性能?

    我有一个 JavaScript 应用程序 它运行良好 但肯定需要一些内存 CPU 性能 它基于 Google 地图 所以基本上它在台式机 笔记本电脑上运行良好 iPad 也可以正常运行 但如今 对于所有这些不同的设备 较小的设备肯定会超载
  • Zend 表单 ajax 提交验证

    我目前正在尝试同时使用 ajax 和 zend validate 验证 zend 表单 让我解释一下 我的表单在 iframe fancybox 中弹出 提交后 我需要显示一条 谢谢 消息 关闭 iframe 并重定向用户 如果成功的话 我
  • Child_process 抛出错误:写入 EPIPE

    我只是练习一些关于child process the的node js代码link https nodejs org download release v5 2 0 docs api child process html child proc
  • Spring MVC Web 应用程序背后的 zuul 重定向问题

    我有一组 Spring Boot 1 3 3 和 Spring Cloud Brixton RC2 微服务 在 Zuul 后面运行 并且在重定向中重写我的 URL 时遇到问题 我的主要问题是我的网络应用程序位于 zuul 后面 并且在重定向
  • mysqldump 与 db 位于单独的文件中

    我正在编写一个单行命令 将所有数据库备份到各自的名称中 而不是使用将所有数据库转储到一个 sql 中 例如 db1 保存到 db1 sql db2 保存到 db2 sql 到目前为止 我收集了以下命令来检索所有数据库 mysql uunam
  • R ggplot2 aes 参数

    我有一个功能 vis function df x p1 lt ggplot df aes x geom line aes y v2 p1 我有一个数据框 df data frame v0 c 1 2 3 v1 c 2 3 4 v2 c 3
  • FFmpeg drawtext - 无法从文件加载字体[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试使用 FFmpeg 在视频顶部添加简单的文本drawtext范围 每次我要这样做时 都会返回错误 无法从文件 arial ttf 加载字体 无法
  • 如何在 NSIS 中获取命令输出?

    我想知道如何在 NSIS 中获取 execwait 命令的输出 例如 如果我运行tree 我将如何获得输出 这将是实际的树 您不能使用 ExecWait 来做到这一点 您必须使用以下插件之一 nsExec http nsis sourcef
  • 类似亚马逊的界面,用于选择产品尺寸和颜色(即单击一个小红色框来选择红色产品等)

    在我的在线商店中 我想实现一个像Amazon s https rads stackoverflow com amzn click com B000YVES0I用于选择产品尺寸和颜色 即 用户应该看到一堆小框 而不是不同尺寸 颜色的单选按钮
  • 如何在 Swift 中通知队列(GCD)

    我正在使用 GCD 来通知主线程 函数内有 2 个异步调用 My code func getWavesByMostRecent closure escaping Wave gt Void var waves Wave let dispatc
  • 优化 MySQL 中联接中的 OR

    我在 MySQL 中有一个相当复杂的查询 当其中一个连接使用 OR 完成时 查询速度会大大减慢 我怎样才能加快速度 相关的连接是 LEFT OUTER JOIN publications p ON p id virtual performa
  • 创建binder时,Spring Cloud config + 总线对配置服务器调用两次

    我使用 spring cloud config 和 spring cloud bus 创建了一个简单的项目 由于某种原因 配置客户端两次调用配置服务器 第一次发生在创建引导程序的上下文时 预期的行为是什么 但第二次发生在创建绑定器的上下文时