##一、SoringBoot启动类继承WebMvcConfigurerAdapte
*本质就是使用FastJson替换Spring Boot默认的Json。
@SpringBootApplication
public class AppExtendJson extends WebMvcConfigurerAdapter{
/**
* 1、继承WebMvcConfigurerAdapter类
* 2、重写configureMessageConverters方法
* WebMvcConfigurerAdapter:用于将fastjson替换原有的jackson
* 目的是声明这个SpringBoot的应用使用fastjson框架解析Json格式数据
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
// 1、需要先定义一个转换消息的对象:FastJsonHttpMessageConverter
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3、在convert中添加配置信息.
fastConverter.setFastJsonConfig(fastJsonConfig);
//4、将convert添加到converters当中.
converters.add(fastConverter);
}
public static void main(String[] args) {
SpringApplication.run(AppExtendJson.class, args);
}
}
##二、注入HttpMessageConverters类
@SpringBootApplication
public class AppInjectJson {
/**
* 在这里我们使用 @Bean注入 fastJsonHttpMessageConvert
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1、需要先定义一个 convert 转换消息的对象;
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、创建Fastjosn对象并设定序列化规则
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3、规则赋予转换对象
fastConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastConverter);
}
public static void main(String[] args) {
SpringApplication.run(AppInjectJson.class, args);
}
}
##三、编写Controller类并解决中文乱码
/**
* @RestController=@Controller + @RequestBody
* @author yang
*/
@RestController
public class HelloController {
/**
* 1、在这里我们使用@RequestMapping 建立请求映射:
* @return
*/
@RequestMapping("hello")
public String hello() {
return "say hello ......";
}
/**
* 2、Spring Boot默认使用的json解析框架是jackson
* 解决中文乱码问题: produces="application/json;charset=UTF-8"
* @return
*/
@RequestMapping(value="getUser",produces="application/json;charset=UTF-8")
public User getUser() {
User user=new User();
user.setId(1);
user.setName("胖子呀");
user.setTelePhoneNumber("25874139");
user.setCreateDate(new Date());
user.setRemark("这是一个信息备注。");
return user;
}
}
##四、FastJson的Maven包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>