Bean创建拦截器

时间:2018-11-22 04:30:25

标签: java spring interceptor

请允许我们在应用程序中创建几个类似的org.springframework.web.reactive.function.client.WebClient类:

@Bean
@Qualifier("one")
public WebClient one() {
    return WebClient.builder().baseUrl("someUrl").build();
}
@Bean
@Qualifier("two")
public WebClient two() {
    return WebClient.builder().baseUrl("someUrl").build();
}
//etc.

需要为所有创建的WebClient添加过滤器。像这样的东西:

public WebClient intercepter(WebClient webClient) {
    return webClient.mutate().filter(setupFilter());
}

春季5能做到吗?

1 个答案:

答案 0 :(得分:1)

我认为您没有修改提供的bean代码的权限?

在这种情况下,您可以实现BeanPostProcessor-检测WebClient实现(或按返回类型的方法)并在每个方法中返回更新的值。

或者,您可以用后处理器中的装饰器替换WebClient的实际实现。

Here is the example有关如何实现处理器的信息。在这种情况下,锁定操作被注入到原始方法中。

别忘了include your post processor to the context