Spring-Boot se basa en el marco de primavera. No es una mejora para la funcionalidad del marco de Spring, sino una forma de construir el resorte rápidamente.
La aplicación Spring-Boot proporciona el convertidor JSON predeterminado para Jackson. Ejemplo:
Configuración de dependencia en 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.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </modelVersion> <MoupRoMid> com.qinker </groupid> <AtifactId> Spring-Boot </artifactid> <cackaging> war </packaging> <-parent> <grupe> org.springframework. <artifactid> spring-boot-starter-parent </artifactid> <versión> 2.0.0.release </versión> </parent> <versión> 0.0.1-snapshot </verversion> <name> spring-boot </name> <url> http://maven.apache.org </url> <propiedades> <Project.Build.SourceEncoding> UTF-8 </project.build.sourceEncoding> <java.version> 9 </java.version> </propiedades> <pendencies> <!-https://mvnrepository.com/artifact/org.springframwork.boot/spring-spoot-spoot-s-starter-s-sharry <MoupRid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-web </artifactid> </pendency> </pendencs> <eding> <dinalName> spring-boot </finalName> </build> </proyecto>
Cree tres clases: MainApp.java y user.java y hellocontroller.java:
paquete com.springboot; import java.util.date; importar org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.restController; @RestController public class Hellocontroller {@RequestMapping ("/Hello") public String Hello () {return "Hello, SpringBoot"; }/** * Spring Boot El marco de resolución JSON predeterminado es Jackson * @return */@RequestMapping ("/getUser") Public User getUser () {user u = new User (); U.SetName ("Zhang San"); U.Setage (33); U.SetCreateTime (nueva fecha ()); devolver u; }} paquete com.springboot; import java.io.serializable; import java.util.date; El usuario de la clase pública implementa serializable {Nombre de cadena privada; edad privada int; Fecha privada CreateTime; public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } fecha pública getCreateTime () {return CreateTime; } public void setCreateTime (date CreateTime) {this.CreateTime = CreateTime; }} paquete com.springboot; importar org.springframework.boot.springapplication; importar org.springframework.boot.autoconfigure.springbootapplication; @SpringBootApplication Clase pública MainApp {public static void main (string [] args) {springapplication.run (mainapp.class, args); }}Inicio MainApp: Visite http: // localhost: 8080/getUser, el resultado es el siguiente:
{"Nombre": "Zhang San", "Age": 33, "CreateTime": "2018-04-04t03: 03: 08.534+0000"}Se puede ver que no hicimos ninguna configuración, pero devolvimos los datos JSON. Se puede ver que Spring-Boot ha realizado una implementación predeterminada de JSON y usa el convertidor Jackson incorporado.
Entonces, tomemos FastJson como ejemplo:
Primero, introduzca el paquete FastJson y agregue las siguientes dependencias en el POM:
<
Para facilitar el efecto, modifique la clase de usuario:
paquete com.springboot; import java.io.serializable; import java.util.date; import com.alibaba.fastjson.annotation.jsonfield; @SupessWarnings ("Serial") El usuario de la clase pública implementa serializable {Nombre de cadena privada; edad privada int; @Jsonfield (format = "yyyy-mm-dd hh: mm") fecha privada createTime; public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } fecha pública getCreateTime () {return CreateTime; } public void setCreateTime (date CreateTime) {this.CreateTime = CreateTime; }}1. La primera forma de implementar la conversión de JSON Custom FastJSON, Spring-Boot implementa la interfaz WebMVCConventer:
Modificar MainApp de la siguiente manera:
paquete com.springboot; import java.util.arrayList; import java.util.list; importar org.springframework.boot.springapplication; importar org.springframework.boot.autoconfigure.springbootapplication; importar org.springframework.http.mediatype; importar org.springframework.http.converter.httpmessageConverter; importar org.springframework.web.servlet.config.annotation.webmvcconfigurer; import com.alibaba.fastjson.serializer.serializerFeature; import com.alibaba.fastjson.support.config.fastjsonconfig; import com.alibaba.fastjson.support.spring.fastjsonhttpmessageConverter; @SpringBootApplication Class pública MainApp implementa WebMVCCONFIGUER {@Override public void configuremessageConverters (list <httpMessageConverter <?>> Converters) {webMVCConfigurer.super.ConfigurEmessageVerterters (Converters); // Crear una instancia de convertidor FastJson FastJSONHTTPMessageConverter Converter = new FastJSONHTTPMessageConverter (); // Objeto de configuración FastJSONConfig config = new FastJSONConfig (); Lista <Mediatype> MediatyPes = new ArrayList <> (); // Mediatype mediatype de codificación china = Mediatype.application_json_utf8; mediatypes.add (mediatype); config.setserializerFeatures (SerializerFeature.prettyFormat); convertidor.setsplantados medios (mediatipos); convertidor.setFastJSONConfig (config); convertidores.add (convertidor); } public static void main (string [] args) {springapplication.run (mainapp.class, args); }}Inicie el programa: Acceda a la ruta anterior: el navegador verá los siguientes resultados:
{"Age": 33, "CreateTime": "2018-04-04 11:14", "Nombre": "Zhang San"} 2. Inyect FastJson Converter usando @Bean Annotation: Modifique MainApp de la siguiente manera:
paquete com.springboot; import java.util.arrayList; import java.util.list; importar org.springframework.boot.springapplication; importar org.springframework.boot.autoconfigure.springbootapplication; importar org.springframework.boot.autoconfigure.http.httpmessageConverters; importar org.springframework.context.annotation.bean; importar org.springframework.http.mediatype; import com.alibaba.fastjson.serializer.serializerFeature; import com.alibaba.fastjson.support.config.fastjsonconfig; import com.alibaba.fastjson.support.spring.fastjsonhttpmessageConverter; @SpringBootApplication Class pública MainApp {@Bean Public httpMessageConverters FastJsonHTTPMessageConVenters () {FastJSONHTTPMessageConverter Converter = new FastjsonhttpMessageConverter (); FastJSONConfig config = new FastJSONConfig (); config.setserializerFeatures (SerializerFeature.prettyFormat); Lista <Mediatype> MediatyPes = new ArrayList <> (); Mediatypes.Add (Mediatype.application_json_utf8); convertidor.setsplantados medios (mediatipos); devolver nuevo httpMessageConverters (convertidor); } public static void main (string [] args) {springapplication.run (mainapp.class, args); }}El resultado de acceso es el mismo.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.