龙目岛的@RequiredArgsConstructor可以初始化 Spring-Webflux WebClient 吗?



我有一个带有private final WebClient webClient的控制器类。而其余的私有final字段可以使用Lombok提供的@RequiredArgsConstructor进行初始化。Spring Webflux WebClient对象似乎只能像这样初始化:this.webClient = WebClientBuilder.build(),因此lombok生成的构造函数不起作用
有办法绕过这个吗?

样本代码:

@RequiredArgsConstructor
@Controller
public class SomeController {
private final SomeService someService;
private final SomeConfig someConfig;
private final SomeOtherConfig someOtherConfig;
private final WebClient webClient;
// etc.
}

这不是因为龙目。Spring在应用程序上下文中存在依赖关系时注入依赖关系。只有在使用Spring构造型进行注释或通过@Bean注释创建实例或是自动配置的一部分时,Spring才会创建实例。Webclient实例需要存在于要注入的应用程序上下文中。

要注入WebClient,您可以在配置类中创建如下内容。

@Configuration
public class Config {
@Bean
public WebClient webClient(){
return WebClient.builder().build();
}
}

对我来说,以前的响应不起作用,但它是我响应的基础。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfiguration {

@Bean
public WebClient webClient(WebClient.Builder webClientBuilder){
return webClientBuilder.build();
}
}

最新更新