I am working on a project using spring webflux. I have to add custom annotations on query params in controller and have some logic on them , came into HandlerMethodArgumentResolver. However i haven't been able to get it to work
object RequestParamsResolver : HandlerMethodArgumentResolver {
override fun supportsParameter(parameter: MethodParameter): Boolean {
println("....check parameter support")
return parameter.getParameterAnnotation(Control::class.java) != null
}
override fun resolveArgument(
parameter: MethodParameter,
bindingContext: BindingContext,
exchange: ServerWebExchange
): Mono<Any> {
println("....resolve argument called")
val annotation = parameter.getParameterAnnotation(Control::class.java)
return Mono.empty()
}
}
@Configuration
class WebConfig : WebFluxConfigurer {
override fun configureArgumentResolvers(configurer: ArgumentResolverConfigurer) {
println("...adding custom resolver")
configurer.addCustomResolver(RequestParamsResolver)
super.configureArgumentResolvers(configurer)
}
}
My configureArgumentResolvers is being executed, but none of the methods in RequestParamsResolver is being called. Am i missing something? Will appreciate any help. TIA
I have looked into the similar question, but it didn't work. Spring HandlerMethodArgumentResolver not executing