私の理解では、Spring MVC にはJackson JSONライブラリのバージョン/依存関係が付属しています。私は FlexJSON が本当に好き/好きで、代わりにFlexJSONを使用するように Spring を構成できるかどうか疑問に思っていました。
1072 次
1 に答える
2
HttpMessageConverter
ハンドル メソッドにアノテーションを付けるとき、@ResponseBody
またはオブジェクトを返すときに、Spring は を使用して応答を生成しResponseEntity
ます。
Spring が MVC 構成をセットアップすると、いくつかのHttpMessageConverter
実装が登録さJackson
れますMappingJackson2HttpMessageConverter
。クラスでこれを行いますWebMvcConfigurationSupport
(Spring MVC 3.1+)
@SuppressWarnings("deprecation")
protected final void addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters) {
StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
stringConverter.setWriteAcceptCharset(false);
messageConverters.add(new ByteArrayHttpMessageConverter());
messageConverters.add(stringConverter);
messageConverters.add(new ResourceHttpMessageConverter());
messageConverters.add(new SourceHttpMessageConverter<Source>());
messageConverters.add(new AllEncompassingFormHttpMessageConverter());
if (romePresent) {
messageConverters.add(new AtomFeedHttpMessageConverter());
messageConverters.add(new RssChannelHttpMessageConverter());
}
if (jaxb2Present) {
messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
}
if (jackson2Present) {
messageConverters.add(new MappingJackson2HttpMessageConverter());
}
else if (jacksonPresent) {
messageConverters.add(new org.springframework.http.converter.json.MappingJacksonHttpMessageConverter());
}
}
これらはデフォルトとして登録されています。これを行う前に、Spring は必要なカスタムHttpMessageConverter
Bean またはインスタンスを登録します。
したがって、解決策は、独自のものを実装しflexjson
て登録することです。登録は、実行している構成の種類によって異なりますが、それぞれにリソースがあります。
于 2013-12-26T16:51:30.810 に答える