“org.springframework.boot.web.server.LocalServerPort”已弃用

问题描述 投票:0回答:4

自 Spring boot 2.7.1 起,

@LocalServerPort
(在包
org.springframework.boot.web.server.LocalServerPort
中)已被弃用。

我可以用什么来代替这个注释?

spring-boot spring-test
4个回答
24
投票

在 Spring Boot 2.7.1 中导入以下包。对下面提到的包使用@LocalServerPort。

org.springframework.boot.test.web.server

您可以在 2.7.18 的已弃用 LocalServer Java API 文档中阅读相关内容。
替代使用:

org.springframework.boot.test.web.server.LocalServer
Java API 文档

检查一遍后,再次查询 SQL 错误。


9
投票

org.springframework.boot.web.server.LocalServerPort
已弃用。

您可以导入

org.springframework.boot.test.web.server.LocalServerPort


8
投票

对于正在寻找解决方案的每个人: 只需更换您的进口

import org.springframework.boot.web.server.LocalServerPort;

import org.springframework.boot.test.web.server.LocalServerPort;

您可以在此处找到当前文档


1
投票

您可以尝试使用

@Value("${server.port}")
来获取端口。这里需要注意的一件事是,自 Spring Boot 2.7.0 版本以来,@LocalServerPort 已移至测试 jar 中,因为 Spring Boot 团队仅打算将它们用于测试。但是,如果您的 pom.xml 中有以下依赖项,Puneet 的建议也将起作用

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
</dependency>

Web 服务器启动后,您还可以使用事件侦听器来获取端口。根据您尝试执行的操作,这可能会起作用,但请注意,它们甚至会在创建 bean 后触发。

 @EventListener
 void onWebInit(WebServerInitializedEvent event) {
   int port = event.getWebServer().getPort();
 }

这里最简单的方法是使用

@Value("${server.port}")
或 Puneet 建议的方法。使用测试 jar 中的导入。在 pom.xml 中包含上述依赖项对于此工作至关重要。

您可以查看与此迁移相关的 github issue

© www.soinside.com 2019 - 2024. All rights reserved.