springboot源码解析之HttpMessageConvertersAutoConfiguration

说在前面spring

本次开始spring-boot-autoconfigure源码解析之HttpMessageConvertersAutoConfiguration,springboot转换器默认支持jsonjson

 

源码解析springboot

@Configuration
@ConditionalOnClass(HttpMessageConverter.class)
@AutoConfigureAfter({ GsonAutoConfiguration.class, JacksonAutoConfiguration.class })
//http消息转化器默认是json
@Import({ JacksonHttpMessageConvertersConfiguration.class,
      GsonHttpMessageConvertersConfiguration.class })
public class HttpMessageConvertersAutoConfiguration {

   static final String PREFERRED_MAPPER_PROPERTY = "spring.http.converters.preferred-json-mapper";
   private final List<HttpMessageConverter<?>> converters;
   public HttpMessageConvertersAutoConfiguration(
         ObjectProvider<List<HttpMessageConverter<?>>> convertersProvider) {
      this.converters = convertersProvider.getIfAvailable();
   }

// 加载converters
   @Bean
   @ConditionalOnMissingBean
   public HttpMessageConverters messageConverters() {
      return new HttpMessageConverters((this.converters != null) ? this.converters
            : Collections.<HttpMessageConverter<?>>emptyList());
   }

   @Configuration
   @ConditionalOnClass(StringHttpMessageConverter.class)
   @EnableConfigurationProperties(HttpEncodingProperties.class)
   protected static class StringHttpMessageConverterConfiguration {

      private final HttpEncodingProperties encodingProperties;
      protected StringHttpMessageConverterConfiguration(
            HttpEncodingProperties encodingProperties) {
         this.encodingProperties = encodingProperties;
      }

//    初始化StringHttpMessageConverter
      @Bean
      @ConditionalOnMissingBean
      public StringHttpMessageConverter stringHttpMessageConverter() {
         StringHttpMessageConverter converter = new StringHttpMessageConverter(
               this.encodingProperties.getCharset());
         converter.setWriteAcceptCharset(false);
         return converter;
      }

   }

}

 

说在最后app

本次仅表明我的观点,仅供参考。ide

相关文章
相关标签/搜索