不推荐使用“org.springframework. Boot .web.服务器.本地服务器端口”

iibxawm4  于 2023-02-04  发布在  Spring
关注(0)|答案(3)|浏览(111)

从Sping Boot 2.7.1开始,@LocalServerPort(在org.springframework.boot.web.server.LocalServerPort包中)被弃用。
我可以用什么来代替这个注解?

ki1q1bka

ki1q1bka1#

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

org.springframework.boot.test.web.server

您可以在link中阅读相关信息
完成后,再次查询SQL错误。

mfuanj7w

mfuanj7w2#

您可以尝试使用@Value("${server.port}")来获取端口,这里需要注意的一点是,自从Sping Boot 2.7.0版以来,@LocalServerPort被移到了测试jar中,因为Spring Boot团队只打算将它们用于测试。

<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中包含上面提到的依赖关系对于此工作至关重要。
您可以 checkout 与此迁移相关的github issue

ulydmbyx

ulydmbyx3#

不建议使用org.springframework.boot.web.server.LocalServerPort
您可以导入org.springframework.boot.test.web.server.LocalServerPort

相关问题