簡體   English   中英

如何將反應式攔截器添加到 Spring Boot 帶注釋的控制器?

[英]How do you add reactive interceptors to Spring Boot annotated controllers?

我已經在客戶端使用rsocket-micrometer設置了 rsocket 指標,方法是使用攔截器配置RSocketConnector ,如下所示(Kotlin):

    rSocketReqesterBuilder.rsocketConnector { configureConnector(it) }

   // ...

    private fun configureConnector(rSocketConnector: RSocketConnector) {
        rSocketConnector.interceptors { iRegistry ->
            // This gives us the rsocket.* counter metrics, like rsocket.frame
            iRegistry.forResponder(MicrometerRSocketInterceptor(registry, *localTags.toArray()))
            iRegistry.forRequester(MicrometerRSocketInterceptor(registry, *localTags.toArray()))
            iRegistry.forConnection(MicrometerDuplexConnectionInterceptor(registry, *localTags.toArray()))
        }
    }

但是在服務器端,我使用了一個帶注釋的( @MessageMapping )Spring Boot RSocket 控制器,就像這樣(Java):

    @MessageMapping("replace-channel-controller")
    public Flux<TransformResponse> replace(Flux<String> texts) ...

在這里,我沒有明確控制連接器。
如何在服務器端添加攔截器?


@Configuration
public class RSocketConfig implements RSocketServerCustomizer {

    private final MeterRegistry registry;

    public RSocketConfig(MeterRegistry registry) {
        this.registry = registry;
    }

    @Override
    public void customize(RSocketServer rSocketServer) {
        rSocketServer.interceptors(
                iRegistry -> {
                    log.info("Adding RSocket interceptors...");
                    iRegistry.forResponder(new MicrometerRSocketInterceptor(registry, tags));
                    iRegistry.forRequester(new MicrometerRSocketInterceptor(registry, tags));
                    iRegistry.forConnection(new MicrometerDuplexConnectionInterceptor(registry, tags));
                }
        );
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM