本文共 1515 字,大约阅读时间需要 5 分钟。
Spring Framework 5.0.7.RELEASE版本中的spring-web模块,提供org.springframework.http.converter包,提供了一系列的Java对象与HTTP消息之间的数据转换器。其中,最基本的是org.springframework.http.converter.HttpMessageConverter接口,是所有具体数据转换器实现的基本接口。
通过这些数据转换器,Spring框架支持如下的各种HTTP请求/响应消息格式:下面重点介绍JSON格式的HTTP请求/响应消息与Java对象之间的转换。
1. Jackson2 (默认)
事实上,即使对于开发人员来说,这种转换过程也几乎是自动完成的,默认无需进行任何设置。
这是因为,作为Spring应用,其中一家默认包含了Jackson2用以操作JSON格式的数据。只要你的HTTP请求/响应消息具有如下特性,Spring框架就会推测出HTTP消息采用了JSON格式,从而自动在Java对象与JSON消息之间进行转换,从而免去了开发人员的操作JSON消息赋值给model对象之苦:
这种自动的转换是通过org.springframework.http.converter.json.MappingJackson2HttpMessageConverter类完成的。
此外,Jackson2还可以操作其他格式的数据,Spring框架中海提供了类似的数据转换器:2. GSON
我们知道,除了Jackson2,能够操作JSON格式数据的还有GSON。对于习惯GSON的开发人员,Spring框架中还提供了GSON的JSON消息转换器,但需要开发人员指定使用org.springframework.http.converter.json.GsonHttpMessageConverter类。其使用的条件与Jackson2类似,也要求HTTP请求/响应消息如下:
GsonHttpMessageConverter gsonConverter = new GsonHttpMessageConverter();...gsonConverter.setSupportedMediaTypes(myMediaTypeList);gsonConverter.setDefaultCharset(Charset.defaultCharset());...restTemplate.setMessageConverters(List.of(gsonConverter));
3. JavaEE 8的JSON Binding API
最后,Spring框架中还提供了采用JSON Binding的JSON消息转换器,其实现是通过org.springframework.http.converter.json.JsonbHttpMessageConverter类。
参考链接:
转载地址:http://lmlai.baihongyu.com/