as far as i know, @EnableAutoConfiguration(@SpringBootApplication) set default HttpMessageConverters for example,

ByteArrayHttpMessageConverter@285f38f6
StringHttpMessageConverter@479f2dc2(ISO-8859-1)
ResourceHttpMessageConverter@3ab6678b
ResourceRegionHttpMessageConverter@7a904f32
SourceHttpMessageConverter@2b59501e
AllEncompassingFormHttpMessageConverter@476e8796
MappingJackson2HttpMessageConverter@1aac188d
Jaxb2RootElementHttpMessageConverter@36fc05ff

but

my spring boot app's HttpMessageConverters is added two HttpMessageConverters by HttpMessageConvertersAutoConfiguration

so result is

ByteArrayHttpMessageConverter@285f38f6
StringHttpMessageConverter@4e1459ea 
StringHttpMessageConverter@479f2dc2 (ISO-8859-1)
ResourceHttpMessageConverter@3ab6678b (UTF-8)
ResourceRegionHttpMessageConverter@7a904f32
SourceHttpMessageConverter@2b59501e
AllEncompassingFormHttpMessageConverter@476e8796
MappingJackson2HttpMessageConverter@1aac188d
MappingJackson2HttpMessageConverter@4eed2acf
Jaxb2RootElementHttpMessageConverter@36fc05ff

in source code of HttpMessageConvertersAutoConfiguration,

StringHttpMessageConverterConfiguration#stringHttpMessageConverter()method annotated with @ConditionalOnMissingBean(with no value)

but StringHttpMessageConverter@479f2dc2(ISO-8859-1) aleady exists.. (oh.. this is not bean?)

and

MappingJackson2HttpMessageConverterConfiguration(imported by HttpMessageConvertersAutoConfiguration)#mappingJackson2HttpMessageConverter() method annotated with @ConditionalOnMissingBean(MappingJackson2HttpMessageConverter.class) (this is not bean too?)

1. i just know, this action(duplicated HttpMessageConverters) is intended by spring boot

and

if it is intended action, then it is important of HttpMessageConverters#getConverters() because of support pattern (ask canWrite() or canRead() then command write() or read() manner) in for loop..

if ISO-8859-1 StringHttpMessageConverter is preceding UTF-8 StringHttpMessageConverter, this is not what i want...

so i just know about this HttpMessageConverters order and why spring boot add these new HttpMessageConverters not removing existing HttpMessageConverters

Comment From: seunghx

i realize that this is not bug, in source code of HttpMessageConverters, annotation say, newly added HttpMessageConverter is precede just before defaullt and same type HttpMessageConverter so wierd action is impossible (of course, case by case so just for my case -> using UTF-8 not ISO-8859-1)

and i think.... boot do not remove original HttpMessageConverters is rightful..

Comment From: snicoll

@seunghx please review the documentation for more details. If you're not sure about something, feel free to chat with the community on Gitter or ask questions on StackOverflow.