替代 SocketUtils.findAvailableTcpPort()?

2023-12-14

以下初始化为套接字spring-integration在专用端口上。

目标是给应用程序 2 分钟的时间在该端口上运行,否则失败就是不成功。但应用程序启动应该not fail directly该端口在启动时不是空闲的!

@Configuration
@EnableIntegration
public class SocketConfiguration {    
        @Value("${app.port}")
        private String port;
    
        @Bean
        public TcpConnectionFactoryFactoryBean tcpFactory() {
            CompletableFuture.runAsync(() -> SocketUtils.findAvailableTcpPort(port, port)).get(2, TimeUnit.MINUTES);
        }
}

问题:SocketUtils is @Deprecated从 Spring 框架 6 开始。 什么是它的正确替代品?

该文档仅声明作为替代方案:

建议您依靠服务器在随机端口上启动的能力,而不是使用 SocketUtils 查找服务器的可用本地端口

好吧,这不是我想要的,我也不能使用 if,因为我历史上绑定到该特定端口!


有一个org.springframework.test.util.TestSocketUtils反而。但正如加里所说,最好依靠操作系统的选择0用于端口选项。尽管为什么要在生产代码中选择随机端口......

要获得真正选定的端口,您可以监听TcpConnectionServerListeningEvent这将为您带来实际价值。

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

替代 SocketUtils.findAvailableTcpPort()? 的相关文章

  • 如何在ArrayList中的特定位置插入对象

    假设我有一个大小为 n 的对象的 ArrayList 现在我想在特定位置插入另一个对象 假设在索引位置 k 大于 0 且小于 n 并且我希望索引位置 k 处及其之后的其他对象向前移动一个索引位置 那么有没有什么方法可以直接在Java中做到这
  • 如何在 Android 中的 Chrome 或 Firefox 等特定浏览器的 Web 视图中加载应用程序

    我是 Android 新手 我正在做一个应用程序 我需要在平板电脑上的 Web 视图中加载现有的应用程序 在平板电脑中 当我使用 Web 视图加载应用程序时 我的应用程序将加载到默认浏览器中 如何在平板电脑上的 Web 视图中的特定浏览器
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository

    使用在 Web 上建立的 guildes 我使用 Spring Data JPA 2 应用程序制作了简单的 Spring Boot 2 仅在 2 7 版本中才向 Apache Ignite 添加了 Spring Boot JPA 2 支持
  • 使用 Google App Engine 向防火墙后面的设备发起消息

    我想使用 Google App Engine 向位于防火墙 路由器 NAT 后面的设备发起 http 流量 这些设备将接收来自 GAE 的命令 我可以让设备轮询 GAE 来查找新消息 但这会占用大量流量 或者 我可以尝试永久保持打开连接 但
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 从 CLI 部署 Maven 项目?

    在 IDE 中构建并运行良好 cd home thufir NetBeansProjects HelloMaven JAVA HOME usr lib jvm java 8 openjdk amd64 home thufir local s
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma

随机推荐

  • 某些提交中缺少 git-svn-id

    我有一个旧的 SVN 存储库 我使用它签出了git svn为了解决这个问题并推送到 Heroku 我做得相当标准git push heroku master git svn rebase git svn dcommit跳舞 一切都很好 然而
  • 数据操作 - 当值为字母数字时排序索引

    我想知道应该如何解决这种数据操作困境 在索引级别的值是字母数字的数据框中对多索引的索引进行排序的最佳方法是什么 这些值为 u 0 u 1 u 10 u 11 u 2 u 2Y u 3 u 3Y u 4 u 4Y u 5 u 5Y u 6 u
  • std::array 的推导指南

    我浏览了 C 模板独特指南 一书 并尝试了解其中的推导指南std array作品 关于标准的定义 声明如下 template
  • ServiceStack - 域和子域的身份验证

    我想将 ServiceStack 身份验证提供程序托管在域 domain com 的根目录上 并对整个域 sub1 domain com sub2 domain com 进行身份验证 是否可以替换默认实现ICookies用我自己的 这样我就
  • WCF请求/响应包大小

    我想知道是否有可配置的设置来限制 WCF 的最大请求 响应数据包大小 我正在使用 VSTS 2008 WCF 3 5 我将自托管 WCF 服务作为 Windows 服务 提前致谢 乔治 是的binding具有获取 设置最大接收数据字节的属性
  • 计算类方法中类类型的对象数量

    如何计算该类的方法中该类类型的对象数量 就此而言 如何在类之外执行此操作而不将对象添加到列表中 我早该想到的 谢谢 我将暂时搁置它 看看是否有更好的方法 因为我同意 我只是把我的头围绕着面向对象 如果您不介意让我多解释一下 也许总体上有更好
  • 为什么我无法在 JavaScript 中解析 JSON?

    JSON 包含一个对象 results 0 MAX id 1 并且这段代码不起作用 var text results 0 var obj JSON parse text console log obj MAX id results 0 已经
  • 使用 --strictNullChecks 时如何防止打字稿中的“Required”从类型中删除“未定义”

    Typescript 允许您删除 可选性 与 映射类型修饰符 可以轻松地与Required
  • 在 FastAPI 中请求端点时出现“解析正文时出错”错误

    我已经在 FastAPI 中实现了一个端点 并且正在从 Postman 测试它 但是每当我发送请求时 我都会收到此错误 解析正文时出错 在搜索错误时 我在需要安装 python multipart 的地方找到了一个解决方案 这个包已经安装了
  • 使用 MarshalByRefObject 跨应用程序域传递数据

    我在两个 NET 应用程序域之间传递一些数据时遇到了一些麻烦 我希望这里有人可以帮助我 基本上我拥有的是一个主要应用程序 Main 加载程序集A and B进入它的主域 然后当我运行插件时 C Main调用创建域方法B它创建一个新域并加载C
  • “[类名]”未命名 C++ 中的类型

    我正在使用列表列表编写图表 为此 我有两个类 每个类都有一个指向同一类的另一个对象的指针和一个指向第二个类的对象的指针 这是代码 文件V h ifndef VERTICEPUNT H define VERTICEPUNT H include
  • 使用 mailR 包通过 R 通过 Outlook 发送经过身份验证的邮件

    如何通过 Outlook 从 R 发送邮件 我被告知要使用sendmailR包 但我不知道如何指定某些控制设置 例如端口 用户名和密码 我也被重定向到这个帖子 但这并没有帮助 我切换到mailR包裹 我可以从其他服务器发送邮件 例如smtp
  • 无法通过脚本更改游戏对象颜色?

    我有一个 UI 画布 其中的图像与画布大小相同 这Image has an rgba of 0 0 0 0 使其不可见 因为a是 0 我想让图像从脚本中淡入黑色 这是我正在使用的代码 public class NavigationC Mon
  • 计算机重新启动后恢复批处理脚本

    我有一堆运行 Windows 2000 Pro 和 IE 5 0 的旧机器 我想将它们升级到带有 Silverlight 的 IE 6 我从微软的网站下载了 IE6 和 Silverlight 安装程序 幸运的是它们都有命令行选项 允许它们
  • 你能在 C# 中编写一段 C++ 代码吗?

    我听说你可以在 C 代码中直接切换到 C 这是怎么做到的 还是我听错了 注意 我的意思不是 C CLI 你可能会想unsafe blocks您可以在其中编写看起来很像 C 的代码 因为您可以使用指针
  • 如何在 JavaScript 中快速播放声音文件的多个副本

    我正在用 html js 构建一个旋转得相当快的命运之轮 每当一种新的颜色飞过标记时 色轮就会发出咔哒声 在最高速度下 这听起来几乎就像一挺机关枪 因此在旧文件基本上完成之前就开始播放新文件 文件本身始终相同 click wav 它在 Ch
  • 如何在Javascript中使用字符串作为变量名? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法使用包含变量名称的字符串来访问 JavaScript 变量 JavaScript 通过名称字符串动态获取局部变量 一个简单的代码来说明我的问题 var chat 1 one var chat
  • 如何理解普通函数和箭头函数中的“this”?

    我想加载远程图像以获取其高度和宽度 但得到不同的结果 下面的代码给了我正确的图像高度和宽度 img onload function console log image this width this height ctx drawImage
  • 绕过“选项请求”的身份验证(因此所有标头都在响应中发送)

    这是在跨源资源共享的背景下 对于预检请求 服务器不会发送标头集 当 选项请求 未传递有效的 cookie 时 其响应中的服务器不会发送我设置的标头 但会发送 200 OK 我用curl检查了这一点 如下所示 显然 我在这里用虚拟的 xyza
  • 替代 SocketUtils.findAvailableTcpPort()?

    以下初始化为套接字spring integration在专用端口上 目标是给应用程序 2 分钟的时间在该端口上运行 否则失败就是不成功 但应用程序启动应该not fail directly该端口在启动时不是空闲的 Configuration