ath*_*hom 1 spring-boot spring-webflux
我想MessageConverter在 Spring Boot 中注册一个自定义,让我更好地控制消息的转换方式。我有一个 Spring Boot 2.1.7 Webflux 应用程序。
我创建了我的自定义转换器:
public class CustomConverter extends MappingJackson2HttpMessageConverter {
...
}
Run Code Online (Sandbox Code Playgroud)
并将其注册为:
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
return new CustomConverter();
}
Run Code Online (Sandbox Code Playgroud)
我还确认它是通过自动装配注册的,HttpMessageConverters并确认它在转换器列表中。然后,我实现了一些方法,我期待着这样调用canRead,canWrite,readInternal,writeInternal他们并把断点。我的应用程序公开了一个 Rest 端点,该端点以 JSON 响应,并调用一个外部 Rest 服务,该服务发布 JSON 有效负载并接收 JSON 作为回报。
我在任何时候都看不到我的转换器正在被使用。我什至删除了所有其他转换器,只留下我自己的转换器,但仍然没有被调用。
我错过了什么吗?
在我的 WebFlux 应用程序中,我必须执行以下操作才能使其正常工作:
@Bean
public WebFluxConfigurer webFluxConfigurer(){
return new WebFluxConfigurer() {
@Override
public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
configurer.registerDefaults(false);
configurer.customCodecs().encoder(new CustomEncoder());
configurer.customCodecs().decoder(new CustomDecoder());
}
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |