由于Spring引导2.7.1,@LocalServerPort
(在包org.springframework.boot.web.server.LocalServerPort
中)已弃用。
我可以用什么来代替这个注释?
在您的spring-boot 2.7.1中导入以下包。对下面提到的包使用@LocalServerPort。
org.springframework.boot.test.web.server
你可以在链接中阅读
一旦通过,您将再次查询SQL错误。
org.springframework.boot.web.server.LocalServerPort
已弃用。
您可以导入org.springframework.boot.test.web.server.LocalServerPort
对于所有寻找解决方案的人:只需更换进口
import org.springframework.boot.web.server.LocalServerPort;
通过
import org.springframework.boot.test.web.server.LocalServerPort;
你可以在这里找到当前的文档
您可以尝试使用@Value("${server.port}")
来获取端口。这里需要注意的一点是,自Spring Boot 2.7.0版本以来,@LocalServerPort被移到了测试jar中,因为Spring Boot团队只打算将它们用于测试。然而,Puneet的建议也会起作用,前提是您在pom.xml 中具有以下依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
您还可以使用事件侦听器在web服务器启动后获取端口。根据你试图做的事情,这可能会奏效,但要注意,它们甚至会在创建豆子后起火。
@EventListener
void onWebInit(WebServerInitializedEvent event) {
int port = event.getWebServer().getPort();
}
这里最简单的方法是使用@Value("${server.port}")
或Puneet建议的方法。使用从测试jar导入。在pom.xml中具有上述依赖关系对于实现这一点至关重要。
您可以检查与此迁移相关的github问题。