gpt4 book ai didi

spring-mvc - Spring Boot WebFlux NettyServerCustomizer 不起作用

转载 作者:行者123 更新时间:2023-12-04 00:18:07 25 4
gpt4 key购买 nike

我有一个非常简单的应用程序,我读到我可以使用 NettyServerCustomizer 来自定义 NettyServer。但它不起作用,没有调用 NettyServerCustomizer 接口(interface)的实现。
项目由 Spring Initializr 生成

申请代码:

@SpringBootApplication
@RestController
@RequestMapping("/test")
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}

@GetMapping
public Mono<String> test() {
return Mono.just("test");
}

@Bean
public NettyServerCustomizer nettyCustomizer() {
return builder -> builder.port(9909);
}

}

绒球
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

最佳答案

定义一个 NettyServerCustomizer 类型的 bean 本身没有任何作用,你可以通过 WebServerFactoryCustomizer 得到想要的结果

@Bean
public WebServerFactoryCustomizer getWebServerFactoryCustomizer() {
WebServerFactoryCustomizer<ConfigurableReactiveWebServerFactory> customizer = factory -> factory.setPort(9909);
return customizer;
}

另请注意,该端口也是从 Environment 中读取的。使用属性 server.port ,我认为除此之外最干净的方法在属性(property)值(value)的来源方面具有很大的灵 active 。

如果你想知道为什么 NettyServerCustomizer 不起作用,稍微挖掘一下代码就会发现这个类没有注入(inject)到 NettyReactiveWebServerFactory 中。以任何方式。

关于spring-mvc - Spring Boot WebFlux NettyServerCustomizer 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49825193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com