Spring-Boot основан на Spring Framework. Это не улучшение функциональности Spring Framework, а способ быстро построить пружину.
Приложение Spring-Boot предоставляет конвертер JSON по умолчанию для Джексона. Пример:
Конфигурация зависимости в 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/maven-v4_0_0.xsd "> <dolidyversion> 4.0.0 </modelversion> <groupid> com.qinker </GroupId> <ratifactid> Spring-boot </artifactid> <Cackaging> War </packaging> <parent> <groupid> org.springframe. <ratfactid> Spring-boot-Starter-parent </artifactid> <sersion> 2.0.0.release </version> </parent> <serse> 0.0.1-snapshot </version> <mame> spring-boot </name> <url> http://maven.apache.org </url> <properties> http://maven.apache.org </url> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <java.version> 9 </java.version> </свойства> <Depertiencies> <!-https://mvnrepository.com/artifact/org.spramework.bootboot-bootbootbootbootboot-> зависимость-> rehybootbootbootboot-> <groupId> org.springframework.boot </GroupId> <artifactId> Spring-boot-starter-web </artifactid> </depervice> </depertive> <buld> <finalname> Spring-boot </finalName> </build> </project> </project>
Создать три класса: mainapp.java и user.java и hellocontroller.java:
пакет com.springboot; импортировать java.util.date; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @RestController Public Class HelloController {@Requestmapping ("/hello") public String hello () {return "hello, springboot"; }/** * Spring Boot. Структура разрешения JSON по умолчанию - Jackson * @return */@requestmapping ("/getUser") public user getUser () {user u = new user (); U.SetName ("Zhang San"); U.Setage (33); u.setCreatetime (new Date ()); вернуть u; }} пакет com.springboot; импортировать java.io.serializable; импортировать java.util.date; Пользователь общедоступного класса реализует Serializable {Private String name; частный int возраст; частная дата создания времени; public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } public date getCreatetime () {return createTime; } public void setCreatetime (дата CreateTime) {this.createTime = createTime; }} пакет com.springboot; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; @Springbootapplication public class mainapp {public static void main (string [] args) {springapplication.run (mainapp.class, args); }}Start ManaPp: посетите http: // localhost: 8080/getuser, результат заключается в следующем:
{"Имя": "Zhang San", "AGE": 33, "CreateTime": "2018-04-04T03: 03: 08.534+0000"}Видно, что мы не делали никакой конфигурации, но мы вернули данные JSON. Можно видеть, что Spring-Boot сделал реализацию JSON по умолчанию и использует встроенный конвертер Джексона.
Итак, давайте возьмем Fastjson в качестве примера:
Во -первых, введите пакет Fastjson и добавьте следующие зависимости в POM:
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson-> <Deposity> <groupId> com.alibaba </GroupId> <straCactId> FastJson </artifactId> 1.2.47 </version> </vehing>
Чтобы облегчить эффект, измените пользовательский класс:
пакет com.springboot; импортировать java.io.serializable; импортировать java.util.date; Импорт com.alibaba.fastjson.annotation.jsonfield; @Suppresswarnings ("serial") открытый класс Пользователь реализует serializable {private String name; частный int возраст; @Jsonfield (format = "yyyy-mm-dd HH: MM") частная дата Create-Time; public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } public date getCreatetime () {return createTime; } public void setCreatetime (дата CreateTime) {this.createTime = createTime; }}1. Первый способ реализации FastJson Custom JSON Conversion, Spring-Boot реализует интерфейс WebMVCConventer:
Изменить ManeApp следующим образом:
пакет com.springboot; импортировать java.util.arraylist; импортировать java.util.list; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Импорт org.springframework.http.mediatype; Импорт org.springframework.http.converter.httpmessageConverter; Импорт org.springframework.web.servlet.config.annotation.webmvcconfigurer; Импорт com.alibaba.fastjson.serializer.serializerfeature; Импорт com.alibaba.fastjson.support.config.fastjsonconfig; Импорт com.alibaba.fastjson.support.spring.fastjsonhttpmessageConverter; @Springbootapplication public Class MainApps реализует webmvcconfigurer {@override public void configuremessageconverters (list <httpmessageconverter <? >> конвертеры) {webmvcconfigurer.super.configuremessageConverters (конвертеры); // Создать экземпляр преобразователя FASTJSON FASTJSONHTTPMESSAGECONVERTERTER = новый FASTJSONHTTPMESSAGECONVERTER (); // объект конфигурации FASTJSONCONFIG config = new FASTJSONCONFIG (); Список <MediaType> mediaTypes = new ArrayList <> (); // китайский кодирование MediaType MediaType = mediaType.application_json_utf8; MediaTypes.add (MediaType); config.setserializerfeatures (serializerfeature.prottyformat); Converter.setSupportedMediatypes (MediaTypes); Converter.setFastJsonConfig (config); Converters.Add (конвертер); } public static void main (string [] args) {springApplication.run (mainapp.class, args); }}Начните программу: доступ к указанному выше пути: браузер увидит следующие результаты:
{"AGE": 33, "CreateTime": "2018-04-04 11:14", "Имя": "Zhang San"} 2. Inject FastJson Converter с использованием @Bean Annotation: измените ManeApp следующим образом:
пакет com.springboot; импортировать java.util.arraylist; импортировать java.util.list; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Импорт org.springframework.boot.autoconfigure.http.httpmessageConverters; Импорт org.springframework.context.annotation.bean; Импорт org.springframework.http.mediatype; Импорт com.alibaba.fastjson.serializer.serializerfeature; Импорт com.alibaba.fastjson.support.config.fastjsonconfig; Импорт com.alibaba.fastjson.support.spring.fastjsonhttpmessageConverter; @Springbootapplication public class mainapp {@bean public httpmessageconverters fastjsonhttpmessageconventers () {fastjsonhttpmessageconverter converter = new FastjsonhttpmessageConverter (); Fastjsonconfig config = new FastJsonConfig (); config.setserializerfeatures (serializerfeature.prottyformat); Список <MediaType> mediaTypes = new ArrayList <> (); mediaTypes.add (mediaType.application_json_utf8); Converter.setSupportedMediatypes (MediaTypes); вернуть новые httpmessageconverters (конвертер); } public static void main (string [] args) {springApplication.run (mainapp.class, args); }}Результат доступа такой же.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.