下面列出了怎么用org.springframework.http.codec.support.DefaultServerCodecConfigurer的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void toStringFormat() {
Config config = new Config();
config.setInClass(String.class);
config.setOutClass(Integer.class);
config.setNewContentType("mycontenttype");
GatewayFilter filter = new ModifyResponseBodyGatewayFilterFactory(
new DefaultServerCodecConfigurer().getReaders(), emptySet(), emptySet())
.apply(config);
assertThat(filter.toString()).contains("String").contains("Integer")
.contains("mycontenttype");
}
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}
@Before
public void beforeMethod() {
resetTracing();
spanRecorder = new SpanRecorder();
Tracer.getInstance().addSpanLifecycleListener(spanRecorder);
initialSpanNameFromStrategy = new AtomicReference<>("span-name-from-strategy-" + UUID.randomUUID().toString());
strategyInitialSpanNameMethodCalled = new AtomicBoolean(false);
strategyRequestTaggingMethodCalled = new AtomicBoolean(false);
strategyResponseTaggingAndFinalSpanNameMethodCalled = new AtomicBoolean(false);
strategyInitialSpanNameArgs = new AtomicReference<>(null);
strategyRequestTaggingArgs = new AtomicReference<>(null);
strategyResponseTaggingArgs = new AtomicReference<>(null);
tagAndNamingStrategy = new ArgCapturingHttpTagAndSpanNamingStrategy<>(
initialSpanNameFromStrategy, strategyInitialSpanNameMethodCalled, strategyRequestTaggingMethodCalled,
strategyResponseTaggingAndFinalSpanNameMethodCalled, strategyInitialSpanNameArgs,
strategyRequestTaggingArgs, strategyResponseTaggingArgs
);
//noinspection unchecked
tagAndNamingAdapterMock = mock(HttpTagAndSpanNamingAdapter.class);
userIdHeaderKeys = Arrays.asList("user-id", "alt-user-id");
filterSpy = spy(
WingtipsSpringWebfluxWebFilter
.newBuilder()
.withTagAndNamingStrategy(tagAndNamingStrategy)
.withTagAndNamingAdapter(tagAndNamingAdapterMock)
.withUserIdHeaderKeys(userIdHeaderKeys)
.build()
);
requestMock = mock(ServerHttpRequest.class);
requestHeadersMock = mock(HttpHeaders.class);
responseMock = mock(ServerHttpResponse.class);
responseHeadersMock = mock(HttpHeaders.class);
doReturn("someRequestId").when(requestMock).getId();
doReturn(requestHeadersMock).when(requestMock).getHeaders();
doReturn(responseHeadersMock).when(responseMock).getHeaders();
exchange = new DefaultServerWebExchange(
requestMock, responseMock, new DefaultWebSessionManager(), new DefaultServerCodecConfigurer(),
new FixedLocaleContextResolver(Locale.US)
);
chainMock = mock(WebFilterChain.class);
expectedResultMonoDuration = Duration.ofMillis(50);
webFilterChainResult = Mono.delay(expectedResultMonoDuration).flatMap(l -> Mono.empty());
doReturn(webFilterChainResult).when(chainMock).filter(any(ServerWebExchange.class));
}
/**
* Server codec configurer.
*
* @return the server codec configurer
*/
@Bean
public ServerCodecConfigurer serverCodecConfigurer() {
return new DefaultServerCodecConfigurer();
}