RouterFunction无法注入处理程序bean



我已经建立了一个临时的github项目来解决一个学习反应式java的爱好项目。https://github.com/mikepc/mongodb-reactive-tmp

我最大的问题是让路由器正确配置。

路由器:

@Configuration
public class SponsoredEventRouter {

@Bean
public RouterFunction<ServerResponse> route(SponsoredEventHandler handler){
return RouterFunctions
.route(POST("/events").and(accept(MediaType.APPLICATION_JSON)), handler::createSponsoredEvent);
}
}

经办人:

@Slf4j
@Component
public class SponsoredEventHandler {
private final SponsoredEventService sponsoredEventService;
public SponsoredEventHandler(SponsoredEventService sponsoredEventService) {
this.sponsoredEventService = sponsoredEventService;
}
public Mono<ServerResponse> createSponsoredEvent(ServerRequest req) {
Mono<SponsoredEventRequest> newEventRequest = req.bodyToMono(SponsoredEventRequest.class);
return ok()
.contentType(MediaType.APPLICATION_JSON)
.body(this.sponsoredEventService.createSponsoredEvent(newEventRequest), SponsoredEvent.class);

}
}

POM在项目中

问题如下:1( IDEA显示一个红色的歪歪扭扭的字,上面写着"无法自动连线。找不到'SponsoredEventHandler'类型的bean。"2( 未注册路由。当我到达/events端点时,它返回一个基本的404错误。

好的,我找到了答案:包没有正确对齐。所有的包都在层次结构的同一级别。这是一个很难调试的问题,但现在我注意到了,它运行得很好。感谢所有阅读此<3

最新更新