Spring MVC系列(9)-HttpMessageConverter报文转换流程源码解析
HttpMessageConverters类
HttpMessageConverters是org.springframework.boot.autoconfigure.http下的一个类,是
Spring Boot提供的管理应用程序中使用HttpMessageConverter的Bean。
提供一种方便的方法来添加和配置额外的HttpMessageConverter到 Web 应用程序。如果需要,可以使用特定的HttpMessageConverters注册此 bean 的实例,否则将使用默认转换器。
HttpMessageConverters维护了一个HttpMessageConverter集合。
private final List<HttpMessageConverter<?>> converters;
注入HttpMessageConverters
在HttpMessageConvertersAutoConfiguration类中,注入了一个默认的HttpMessageConverters。
@Bean
@ConditionalOnMissingBean
public HttpMessageConverters messageConverters(ObjectProvider<HttpMessageConverter<?>> converters) {
return new HttpMessageConverters((Collection)converters.orderedStream().collect(Collectors.toList()));
}
调用了HttpMessageConverters的构造方法。
public HttpMessageConverters(boolean addDefaultConverters, Collection<HttpMessageConverter<?>> converters) {
List<HttpMessageConverter<?>> combined = this.getCombinedConverters(converters, addDefaultConverters ? this.getDefaultConverters() : Collections.emptyList());
combined = this.postProcessConverters(combined);
this.converters = Collections.unmodifiableList(combined);
}