Spring Boot 3.0.2集成feign-reactor-webclient报错:找不到ReactiveFeignNamedContextFactory
问题:Spring Boot启动时找不到ReactiveFeignNamedContextFactory Bean
我基于Spring 3.0.2开发Spring Boot应用,使用feign-reactor-webclient:3.2.6作为API客户端,每次启动都会报错:
Parameter 0 of constructor in com.example.testfeignreactive.TestServiceClient required a bean of type 'reactivefeign.spring.config.ReactiveFeignNamedContextFactory' that could not be found.
主类代码
@SpringBootApplication @EnableReactiveFeignClients @EnableAutoConfiguration class TestFeignReactiveApplication fun main(args: Array<String>) { runApplication<TestFeignReactiveApplication>(*args) }
配置类代码
@Configuration class CustomerClientConfig { @Bean fun reactiveOptions(): ReactiveOptions? { return WebReactiveOptions.Builder() .setReadTimeoutMillis(2000) .setWriteTimeoutMillis(2000) .setResponseTimeoutMillis(2000) .build() } @Bean fun loggerListener(): ReactiveLoggerListener<*>? { return DefaultReactiveLogger(Clock.systemUTC(), LoggerFactory.getLogger(TestServiceClient::class.java)) } }
客户端接口代码
@ReactiveFeignClient( name = "test-service", url = "http://localhost:8080", configuration = [CustomerClientConfig::class] ) interface TestServiceClient { @RequestMapping(method = [RequestMethod.GET], value = ["/api/v1/terms-and-conditions"]) fun getTermAndCondition(): Mono<String> }
解决办法
- 对齐依赖版本:Spring 3.0.x属于Spring Boot 3.x生态,
feign-reactor-webclient:3.2.6是基于Spring 2.x开发的,版本不匹配会导致自动配置失效。建议升级到支持Spring 3.x的版本,比如4.0.0+。 - 检查自动配置开关:确认
@EnableReactiveFeignClients注解未被错误配置,且@EnableAutoConfiguration没有排除ReactiveFeign相关的自动配置类。 - 手动注册缺失Bean:如果版本兼容但自动配置仍未生效,可在配置类中手动注册
ReactiveFeignNamedContextFactory:
@Bean fun reactiveFeignNamedContextFactory(): ReactiveFeignNamedContextFactory { return ReactiveFeignNamedContextFactory(ReactiveFeignClientSpecification::class.java) }
- 补全依赖模块:确保除了
feign-reactor-webclient,还引入了feign-reactor-spring依赖(ReactiveFeignNamedContextFactory定义在该模块中)。Maven依赖示例:
<dependency> <groupId>com.playtika.reactivefeign</groupId> <artifactId>feign-reactor-spring</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>com.playtika.reactivefeign</groupId> <artifactId>feign-reactor-webclient</artifactId> <version>4.0.0</version> </dependency>
内容的提问来源于stack exchange,提问作者Toro
相关产品推荐
相关产品推荐

