Spring Boot如何使用第三方json解析框架
阿新 • • 發佈:2019-02-03
1. 在pom.xml檔案中,加入第三方json依賴jar包
這裡以使用fastjson為例,pom.xml內容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lanhuigu</groupId> <artifactId>spring-boot-hello</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-hello</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 配置jdk版本,預設為1.6 --> <java.version>1.8.0_66</java.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- spring boot引入相關web開發jar包,包括spring,spring mvc,spring boot,json框架等等 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 這個地方不需要指定jar包版本,根據parent配置自動選擇 --> <!-- <version>1.4.1.RELEASE</version> --> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> </dependencies> </project>
2. 修改啟動類
兩種方法程式碼例項:
package com.lanhuigu; import java.util.List; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.web.HttpMessageConverters; import org.springframework.context.annotation.Bean; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; /** * Hello world! */ @SpringBootApplication public class App extends WebMvcConfigurerAdapter{ /* * spring boot中如何使用fastjson框架,而不是使用預設jackson框架解析json資料 */ // ###########################方法一########################## /* * (1)啟動類繼承於WebMvcConfigurerAdapter * (2)覆蓋方法configureMessageConverters */ // @Override // public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // super.configureMessageConverters(converters); // /* // * 1.需要先定義一個converters轉換訊息的物件 // * 2.新增fastjson的配置資訊,比如: 是否需要格式化返回的json資料 // * 3.在converter中新增配置資訊 // * 4.將converter新增到converters資訊中 // */ // // 1.需要先定義一個converters轉換訊息的物件 // FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // // // 2.新增fastjson的配置資訊,比如: 是否需要格式化返回的json資料 // FastJsonConfig fastJsonConfig = new FastJsonConfig(); // fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // // // 3.在converter中新增配置資訊 // fastConverter.setFastJsonConfig(fastJsonConfig); // // // 4.將converter新增到converters資訊中 // converters.add(fastConverter); // } // ###########################方法二########################## /* * 注入bean:HttpMessageConverters */ @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { // 1.需要先定義一個converters轉換訊息的物件 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2.新增fastjson的配置資訊,比如: 是否需要格式化返回的json資料 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // 3.在converter中新增配置資訊 fastConverter.setFastJsonConfig(fastJsonConfig); // 4.將converter賦值給HttpMessageConverter HttpMessageConverter<?> converter = fastConverter; // 5.返回HttpMessageConverters物件 return new HttpMessageConverters(converter); } public static void main( String[] args ) { /*System.out.println( "Hello World!" );*/ SpringApplication.run(App.class, args); } }
通過啟動類中任意一種方法,均可以實現引入第三方json解析框架,替代掉spring boot預設的jackson解析框架。