O Spring-Boot é baseado na estrutura da mola. Não é um aprimoramento da funcionalidade da estrutura da primavera, mas uma maneira de construir a primavera rapidamente.
O aplicativo Spring-Boot fornece o conversor JSON padrão para Jackson. Exemplo:
Configuração de dependência em 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"> <modelVersion>4.0.0</modelVersion> <groupId>com.qinker</groupId> <artifactId>spring-boot</artifactId> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <TRARFACTID> Spring-boot-Starter-Parent </starifactId> <versão> 2.0.0.release </siers> </parent> <versão> 0.0.1-snapshot </version> <name> spring-boot </name> <url> http:/maven.apache.org </url> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>9</java.version> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> <dependency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-Boot-Starter-Web </ArtifactId> </Dependency> </Dependences> <uilftle> <FinalName> Spring-Boot </namename> </build> </project>
Crie três classes: mainApp.java e user.java e hellocontroller.java:
pacote com.springboot; importar 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"; }/** * BOTA DE MANDA A estrutura de resolução JSON padrão é Jackson * @RETURN */@RequestMapping ("/getUser") Public User getUser () {user u = new User (); u.setName ("Zhang San"); U.Setrage (33); U.SetCreateTime (New Date ()); devolver u; }} pacote com.springboot; importar java.io.serializable; importar java.util.date; classe pública o usuário implementa serializável {nomes de sequência privada; private Int Age; data privada createTime; public String getName () {Return Name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public data getCreateTime () {return createTime; } public void setCreateTime (data createTime) {this.createTime = createTime; }} pacote com.springboot; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; @Springbootapplication public class MainApp {public static void main (string [] args) {springapplication.run (mainApp.class, args); }}Start MainApp: Visite http: // localhost: 8080/getUser, o resultado é o seguinte:
{"Name": "Zhang San", "Age": 33, "CreateTime": "2018-04-04T03: 03: 08.534+0000"}Pode -se observar que não fizemos nenhuma configuração, mas retornamos dados JSON. Pode-se ver que a Spring-Boot fez uma implementação padrão do JSON e usa o conversor Jackson embutido.
Então, vamos tomar Fastjson como exemplo:
Primeiro, apresente o pacote Fastjson e adicione as seguintes dependências no POM:
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson-> <pendency> <voundid> com.alibaba </groupid> <stifactId> fastjson </ArtifactId> <Versão> 1.2.47 </versão </dependence>
Para facilitar o efeito, modifique a classe de usuário:
pacote com.springboot; importar java.io.serializable; importar java.util.date; import com.alibaba.fastjson.annotation.jsonfield; @Suppresswarnings ("serial") classe pública o usuário implementa serializável {nome da string privada; private Int Age; @Jsonfield (format = "yyyy-mm-dd hh: mm") data privada createTime; public String getName () {Return Name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public data getCreateTime () {return createTime; } public void setCreateTime (data createTime) {this.createTime = createTime; }}1. A primeira maneira de implementar a Conversão JSON Fastjson Custom, a Spring-Boot implementa a interface webmvcConventer:
Modifique o MainApp da seguinte maneira:
pacote com.springboot; importar java.util.arraylist; importar java.util.list; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; importar org.springframework.http.mediType; 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 public class MainApp implementa webmvcconfigurer {@Override public void configureMessageConverters (list <httpmessageConverter <? >> conversores) {webmvcconfigurer.super.ConfigurremEmessageconverters (conversores); // Crie uma instância do conversor Fastjson fastjsonHttpMessAgConverter Converter = new FastJSONHTTPMESSAGECONVERTER (); // Objeto de configuração fastjsonConfig config = new fastjsonConfig (); List <PomentyType> mediatypes = new ArrayList <> (); // chinês codificando mediatype mediatype = mediatype.application_json_utf8; mediatypes.add (mediatype); config.SetSerializerFeatures (serializerfeature.prettyFormat); Converter.SetSupportedMediTypes (MediaTypes); converter.setFastJSONCONFIG (config); conversters.add (conversor); } public static void main (string [] args) {springapplication.run (mainApp.class, args); }}Inicie o programa: Acesse o caminho acima: o navegador verá os seguintes resultados:
{"Age": 33, "CreateTime": "2018-04-04 11:14", "Nome": "Zhang San"} 2. Injetar o Fastjson Converter usando @Bean Anotation: Modify MainApp da seguinte forma:
pacote com.springboot; importar java.util.arraylist; importar 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.mediType; Import com.alibaba.fastjson.serializer.SerializerFeature; Import com.alibaba.fastjson.support.config.fastjsonConfig; Import com.alibaba.fastjson.support.spring.fastjsonhttpmessageConverter; @Springbootapplication public class MainApp {@Bean public httpMessageConverters fastjsonHttpMessageConventers () {fastJSONHTTPMESSAGECONVERTER CONVERTER = novo FastJSONHTTPMESSAGECONVERTER (); FastjsonConfig config = new fastjsonConfig (); config.SetSerializerFeatures (serializerfeature.prettyFormat); List <PomentyType> mediatypes = new ArrayList <> (); mediatypes.add (mediatype.application_json_utf8); Converter.SetSupportedMediTypes (MediaTypes); devolver novos httpmessageConverters (conversor); } public static void main (string [] args) {springapplication.run (mainApp.class, args); }}O resultado do acesso é o mesmo.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.