独自快乐|jackson学习之九:springboot整合(配置文件)( 三 )

  1. 测试用的Controller代码如下 , 很简单只有两个接口 , serialization返回序列化结果 , deserialization接受客户端请求参数 , 反序列化成实例 , 通过toString()来检查反序列化的结果 , 另外 , 还通过Autowired注解从spring容器中将ObjectMapper实例直接拿来用:
package com.bolingcavalry.springbootproperties.controller;import com.bolingcavalry.springbootproperties.bean.Test;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/jsonproperty")@Api(tags = {"JsonPropertySerializationController"})public class JsonPropertySerializationController {private static final Logger logger = LoggerFactory.getLogger(JsonPropertySerializationController.class);@AutowiredObjectMapper mapper;@ApiOperation(value = "http://kandian.youth.cn/index/测试序列化", notes = "测试序列化")@RequestMapping(value = "http://kandian.youth.cn/serialization", method = RequestMethod.GET)public Test serialization() throws JsonProcessingException {Test test = new Test();logger.info(mapper.writeValueAsString(test));return test;}@ApiOperation(value = "http://kandian.youth.cn/index/测试反序列化", notes="测试反序列化")@RequestMapping(value = "http://kandian.youth.cn/deserialization",method = RequestMethod.PUT)public String deserialization(@RequestBody Test test) {return test.toString();}}验证(不用配置文件)
  • 先来看看没有配置文件时 , 默认的jackson配置的表现 , 直接在IDEA上运行SpringbootpropertiesApplication;
  • 浏览器访问http://localhost:8080/swagger-ui.html, 如下图红框1 , json_field0和json_field1都是JsonProperty注释 , 出现在了swagger的model中 , 这证明jackson注解已经生效:

独自快乐|jackson学习之九:springboot整合(配置文件)
  • 点击上图的红框2 , 看看springboot引用返回的序列化结果 , 如下图:

独自快乐|jackson学习之九:springboot整合(配置文件)
  • 另外 , 上述红框中的json格式 , 每个属性单独一行 , 像是做了格式化调整的 , 这是springboot做的?还是swagger展示的时候做的?用浏览器访问http://localhost:8080/jsonproperty/serialization, 结果如下 , 可见springboot返回的是未经过格式化的json:

独自快乐|jackson学习之九:springboot整合(配置文件)
  • 接下来咱们添加jackson相关的配置信息并验证是否生效;
添加配置文件并验证