Bagian Dasar
1. Pengantar Fastjson
Fastjson adalah perpustakaan Java yang dapat digunakan untuk mengubah objek Java menjadi representasi JSON. Ini juga dapat digunakan untuk mengubah string JSON menjadi objek Java yang setara. Ini harus menjadi kecepatan konversi tercepat dan hampir menjadi konfigurasi standar proyek (FastJson biasanya digunakan sebagai pengganti Jackson ketika permintaan AJAX dan pengembangan antarmuka).
Github: https://github.com/alibaba/fastjson (unduhan lokal)
ciri:
Fitur Utama:
2. Fastjson API
Kelas entri API Fastjson adalah com.alibaba.fastjson.json. Operasi serialisasi umum dapat secara langsung diselesaikan dengan metode statis di kelas JSON.
// Parse JSON Teks sebagai JSONOBJECT atau JSONARRAY PUBLIK OBYEK FINAL STATIC Parse (String Text); // Parse JSON Teks ke dalam JSONObject Public Static JsonObject ParseObject (String Text); // Parse JSON Teks sebagai Javabean Public Static Final <T> t parseObject (string text, class <t> clazz); // Parse JSON Teks ke jsonarray public static final jsonarray parsearray (string text); // Parse teks JSON ke dalam Koleksi JavaBean Public Static Final <T> Daftar <T> parseArray (Teks String, kelas <T> clazz); // Serialize Javabean ke dalam JSON Teks Public Static Final String Tojsonstring (Object Object); // Serialize Javabean menjadi jsonstring yang diformat (objek objek, boolean prettyformat); // Konversi JavaBean ke JSONObject atau JsonArrayPublic Static Final Object Tojson (Object JavaObject);
JsonArray: Setara dengan daftar <POBPENT>
JsonObject: Setara dengan Peta <String, Object>
SerializeConfig: adalah konfigurasi khusus untuk beberapa proses serialisasi selama proses serialisasi, seperti memformat beberapa bidang (tanggal, enumerasi, dll.)
Serializewriter: setara dengan StringBuffer
Properti SerializerFeature:
Bagian praktis
1. Memperkenalkan dependensi Spring MVC dan FastJson di 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.romp.romp.romp. http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mengdee</groupId> <artifactId>platform-springmvc-webapp</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name> platform-springmvc-webapp maven webapp </name> <rurl> http://maven.apache.org </rerl> <proy Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <chunit.version <GOG4J.Version> 2.5 </log4j.version> <jstl.version> 1.2 </jstl.version> <spring.version> 4.2.3.release </spring.version> <fastjson.version </fastjson> </Properties> <fastjson.version> </grupsid> </versies> </Properties> <dep dependency> <pendendency> </grupyid> </Properties> <groupes> <pendendency> <pendendency> grup <ArtifactId> junit </artifactid> <version> 3.8.1 </version> <scope> tes </opope> </dependency> <dependency> <groupid> javax.servlet </groupid> <t ArtifactId> </artifactid> <version> $ {jstl.version} </Version> </artifactid> <! <groupId> org.springframework </groupid> <ArTifactId> Spring-Webmvc </t ArtifactId> <Version> $ {spring.version} </version> </dependency> <dependency> </org.springframework </groupid> <ArtiFacTID> Spring-Core </Artidsid> </groupid> <ArTtifacTID> Spring-Core </Artidsid> Versi </Groupid> <ArTtifacTID> Spring-Core </Artidsid> Versi </Groupids. <dependency> <GroupId> org.springframework </groupId> <ArTifactId> Spring-Context </arttifactId> <Version> $ {spring.version} </version> </dependency> <Art-context-Context-SPRING-SPRING-SPRINGAD </GroupId> <Art-Context-dantif-Context-SPRING-SPRING-SPRINGTORT </GroupId> <ArtifacTid> Spring-Context-SPRING-CONTEXT </Dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> spring-jdbc </artifactid> <version> $ {spring.version} </version> </dependency> <groupid> com.alibaba </proupid> <Artifactid> <groupid> com.alibaba </groupid> <ArTifactid> <version> $ {fastjson.version} </version> </dependency> </dependencies> <!-Menggunakan aliyun mirror-> <r repositories> <repository> <dr> Aliyun </id> <name> aliyun </name> <rrgr> http:/maven.aliY.Allic.nex/nex/nex/nex/http:/maven.aliy.Allic.com/nex/liic.maven.aliy.com </ Repository> </ Repository> </ Repository> </ Repository> <build> <finalname> platform-springmvc-webapp </finalname> </build> </joyan>2. Konfigurasikan web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath: conf/spring/spring-*. xml </param-value> </context-param> <listener> <cripence> listener spring </creckripe> <listener-class> org.springframework.web.context.contextloadererer </listener-class> </lonst-nol <context. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-Mapping> <servlet-Mapping> <servlet-name> spring-mvc </servlet-name> <rats-pola>/</rucs-pola> </servlet-mapping> <nilter> <filter-name> karakterencodingfilter </filter-name> <nilter-class> org.springframework.weB.filter.character> <nilter-class> org.springframework.weB.filter.characr <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <RURL-PATERS>/*</RURL-PATERS> </TERFERTER-MAPPING> <E "
3. Konfigurasikan spring-servlet.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http:/schem.mp.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org.org. yang” ” XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-weans-4.2.xsd http:/wwww.springframework.orgaRa/orgaRa.orger/orgework http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/www.springframework.org/schema/contex <konteks: komponen-scan-package = "com.mengdee.manage.controller"/> <bean id = "viewResolver"> <name properti = "prefix" value = "/"> </property> <!-prefix file view-> name property = "name" view ". Velocity dan hal-hal lain-> <nama properti = "viewclass" value = "org.springframework.web.servlet.view.jstlview"> </prop Property> </ bean> <!-Mulai Fungsi Annotasi MVC SPRING; <!-- Configure Fastjson to replace the original jackson support--> <bean> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json</value> </list> </property> <property name="features"> <list> <value>QuoteFieldNames</value> <!-- Whether to use double quotes when outputting key, default to true --> <value>WriteMapNullValue</value> <!-- Whether to output a field with a null value, default to false --> <!-- <value>DisableCircularReferenceDetect</value> <value>WriteDateUseDateFormat</value> <value>WriteNullStringAsEmpty</value> If the character type field is null, output is "", not null <value>WriteNullNumberAsZero</value> If the numeric field is null, the output is 0, not null <value>WriteNullBooleanAsFalse</value> Boolean field is null, the output is false, not null <value>WriteNullListAsEmpty</value> List field is null, the output is [], not null --> </list> </property> </bean> </mvc: Pesan-Konverter> </mvc: Annotation-Driven> </Bac>
4. Java
Pendidikan: Pendidikan (Kelas Pencacahan)
Paket com.mengdee.manage.entity; impor java.util.hashmap; impor java.util.map;/** * pendidikan * @author administrator * */pendidikan publik {TK ("Junior", "sekolah dasar" ("sekolah dasar", 2), Junior_Middle ("sekolah dasar", 2), Junior_Middle ("Junior, Universitas ("universitas", 5), perguruan tinggi ("perguruan tinggi", 6); peta akhir statis swasta <Integer, Education> Education_map = hashmap baru <Integer, Education> (); static {for (Education Education: Education.Values ()) {Education_map.put (Education.getIndex (), Education); }} teks string pribadi; indeks int pribadi; Pendidikan Pribadi (Teks String, Indeks Int) {this.text = teks; this.index = index; } public string getText () {return text; } public void setText (string text) {this.text = text; } public int getIndex () {return index; } public void setIndex (int index) {this.index = index; } Public Static Education Getenum (Integer Index) {Return Education_map.get (index); }}Orang:
Paket com.mengdee.manage.entity; import java.util.arraylist; import java.util.date; import java.util.list; import java.util.map; import com.alibaba.fastjson.annotation.jsonfield; orang kelas publik {private long id; nama string pribadi; jenis kelamin byte pribadi; // Jenis Kelamin 1: Pria 2: Usia Singkat Pribadi Perempuan; // usia gaji panjang pribadi; // Gaji bobot ganda pribadi; // Berat level char pribadi; // peringkat orang dewasa boolean pribadi; // apakah ulang tahun kencan pribadi orang dewasa; // Ulang Tahun Pendidikan Pribadi; // Kualifikasi Pendidikan String Pribadi [] Hobi; // Hobi Daftar Pribadi <dog> Anjing; // Pet Dog Private Map <String, Object> Alamat; // Alamat // Gunakan anotasi untuk mengontrol apakah Anda ingin membuat serial @jsonfield (serialize = false) Daftar pribadi <bestigasi> obj = new ArrayList <> (); orang publik () {} orang publik (ID panjang, nama string, jenis kelamin byte, usia pendek, gaji panjang, berat ganda, level char, orang dewasa boolean, kencan ulang tahun, string [] hobi, daftar <dog> anjing, peta <string, objek> alamat) {super (); this.id = id; this.name = name; this.gender = jenis kelamin; this.age = usia; this.salary = gaji; this.weight = berat; this.level = level; this.adult = dewasa; this.birthday = ulang tahun; this.hobbies = hobi; this.dogs = anjing; this.address = alamat; } public long getId () {return id; } public void setId (Long ID) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } public byte getGender () {return gender; } public void setGender (gender byte) {this.gender = gender; } getage pendek publik () {usia kembali; } public void setage (usia pendek) {this.age = usia; } public long getSalary () {return gaji; } public void setSalary (gaji panjang) {this.salary = gaji; } public double getWeight () {return weight; } public void setWeight (bobot ganda) {this.weight = berat; } public char getLevel () {level kembali; } public void setlevel (level char) {this.level = level; } public boolean isAdult () {return dewasa; } public void setAdult (Boolean dewasa) {this.adult = dewasa; } tanggal publik getBirthday () {kembali ulang tahun; } public void setBirthday (tanggal ulang tahun) {this.birthday = ulang tahun; } // Tangani tipe enumerasi serial, nilai defaultnya adalah string nilai enum serial, daripada indeks pengikat enum atau teks @jsonfield (name = "edu") public int getedu () {return educed.getIndex (); } @Jsonfield (name = "edu") public void setedu (int index) {this.education = educed.getEnum (index); } @Jsonfield (serialize = false) pendidikan publik getEducation () {return education; } @Jsonfield (serialize = false) public void seteducation (pendidikan pendidikan) {this.education = pendidikan; } public string [] getHobbies () {return hobbies; } public void setHobbies (string [] hobi) {this.hobbies = hobi; } Daftar publik <dog> getDogs () {return dog; } public void setDogs (Daftar <dog> Dogs) {this.dogs = dog; } peta publik <String, Object> getAddress () {alamat kembali; } public void setAddress (peta <string, objek> alamat) {this.address = alamat; }}TestController
Paket com.mengdee.manage.controller; import java.text.decimalformat; import java.util.arraylist; import java.util.date; impor java.util.hashmap; impor java.util.list; impor java.util.mape.sorging.sollpring. org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.responseBody; impor com.alibaba.fastjson.json; import com.alibaba.fastjson.jsonarray; impor com.alibaba.fastjonizer; fastjson.jsonarray; impor com.alibaba.fastjonizer; fastjson.jsonarray; impor com.alibaba.fastjonizer; fastjson.jsonarray; impor com.alibaba.fastjonizer; fastjson.jsonArray; impor com.alibaba.fastjonizer; com.alibaba.fastjson.serializer.serializeConfig; impor com.alibaba.fastjson.serializer.SimpledateFormatserializer; import com.mengdee.manage.entity.address; import com.mengdee.manage.entity.dog; com.mengdee.menge.manage.entity.dog; com.mengdee.menge.manage.dog.dog; com.mengdee.menge.manage.dog.dog; impor com.mengdee.menge.danentity.dog; com.mengdee.menge.danentity.dog. com.mengdee.manage.entity.person; @ControllerPublic TestController kelas {private static SerializeConfig SerializeConfig = new SerializeConfig (); static {serializeConfig.put (date.class, new SimpleDateFerformAserializer ("yyyy-mm-dd hh: mm: ss")); serializeConfig.put (double.class, doubleserializer baru (decimalformat baru ("0,00")))); } @RequestMapping ("/index") public string index () {return "index"; } // javabean ke objek @RequestMapping ("/json") @ResponseBody objek publik json () {orang orang = orang baru (); person.setid (1L); orang.setname ("Mengdee"); orang.setage ((pendek) 18); /// * {"ulang tahun": null, "bobot": 0, "anjing": null, "dewasa": false, "hobi": null, "pendidikan": null, "id": 1, "level": "", "address": null, "usia": "name": "Mengdee", "gender": 0, "baji": 0 ora/ name " * Kembali Personjson; } // javabean ke string @RequestMapping ("/json2") @ResponseBody public string json2 () {person orang = orang baru (); person.setid (1L); orang.setname ("Mengdee"); orang.setage ((pendek) 18); // Jika nilai nol digunakan, itu tidak dapat diuji. <value> writemapnullValue </ value> // "{" dewasa ": false," zaman ": 18," jenis kelamin ": 0," id ": 1," level ":" "," name ":" Mengdee "," Gaji ": 0," Berat ": 0.0}" string jsonstring = json.tojsonstring (orang (personal (personal (personal); mengembalikan jsonstring; } @RequestMapping ("/json3") @ResponseBody Objek publik JSON3 () {orang orang = orang baru (); person.setid (1L); orang.setname ("Mengdee"); orang.setage ((pendek) 18); orang.setBirthday (tanggal baru ()); Objek personjson = json.toJson (orang); // json.toJson (orang) default ke milidetik "ulang tahun": 1495073314780, // Gunakan nomor seri SerializeConfig untuk mengonfigurasi pemformatan untuk tanggal // "{" ulang tahun ":" 2017-05-18 10:19:55 "," Weight ": 0.0," Dewasa ": Salah," id ": 1," level ":" "," usia ": 18," Nama ":" Mengdee "," Jenis Kelamin ": 0," Gaji ": 0}" String Jsonstring = Json.toJsonstring (personjson, serializeconfig); mengembalikan jsonstring; } @RequestMapping ("/json4") @ResponseBody Objek publik JSON4 () {orang orang = orang baru (); person.setid (1L); orang.setname ("Mengdee"); orang.setage ((pendek) 18); orang.setBirthday (tanggal baru ()); orang. // enumeration string [] hobbies = {"bacaan", "pariwisata"}; orang.sethobbies (hobi); Dog dog1 = anjing baru (1L, "dog1", (pendek) 1); Dog dog2 = anjing baru (2L, "dog2", (pendek) 2); Daftar <dog> dog = new ArrayList <> (); dogs.add (dog1); dogs.add (dog2); orang.setDogs (anjing); Alamat Alamat1 = Alamat Baru (1L, "Distrik Baru Shanghai Pudong"); Alamat Alamat2 = Alamat Baru (2L, "Distrik Shanghai Baoshan"); Peta <string, object> addressmap = hashmap baru <> (); addressmap.put (address1.getId () + "", address1); addressmap.put (address2.getid () + "", address2); orang.setAddress (addressmap); Objek personjson = json.toJson (orang); Kembali Personjson; } @RequestMapping ("/json5") @ResponseBody public string json5 () {dog dog1 = dog baru (1l, "dog1", (pendek) 1); Dog dog2 = anjing baru (2L, "dog2", (pendek) 2); Daftar <dog> dog = new ArrayList <> (); dogs.add (dog1); dogs.add (dog2); // Daftar <T> -> json string jsonstring = json.toJsonstring (anjing, false); System.out.println (jsonstring); // json -> Daftar <T> Daftar <dog> parseArray = json.parseArray (jsonstring, dog.class); untuk (anjing anjing: parseArray) {System.out.println (anjing); } Peta <string, dog> peta = hashmap baru <string, dog> (); Map.put ("Dog1", New Dog (1L, "Dog1", (pendek) 1)); peta.put ("dog2", anjing baru (2L, "dog2", (pendek) 2)); Map.put ("Dog3", New Dog (3L, "Dog3", (pendek) 3)); // peta -> string json mapjsonstring = json.toJsonstring (peta, true); System.out.println (MapJSonstring); // json -> peta @suppresswarnings ("Uncecked") peta <string, dog> map1 = (peta <string, dog>) json.parse (mapjsonstring); untuk (tombol string: map1.keyset ()) {System.out.println (key + ":" + map1.get (key)); } // array -> json string [] hobbies = {"a", "b", "c"}; String hobbiesstring = json.tojsonstring (hobi, true); System.out.println (hobi); // json -> array jsonarray jsonarray = json.parsearray (hobbiesstring); untuk (objek o: jsonarray) {system.out.println (o); } System.out.println (jsonarray); mengembalikan jsonstring; }}Integrasi Swagger
Langkah 1: Perkenalkan dependensi terkait
<dependency> <GroupId> io.springfox </groupid> <ArtifactId> springfox-swagger2 </artifactid> <version> 2.6.1 </version> <scope> kompilasi </scope> </dependency> <sgroupid> <sruptid> Com.fasterxml.jackson.core </groupt> <troupid> <sruptid> <crupt-d-dotif> <version> 2.6.6 </version> </dependency>
Langkah 2: Konfigurasi Informasi Swagger
Swaggerconfig.java
@Configuration@enableWebMvc@enableSwagger2public kelas swaggerconfig {@bean docket publik customDocket () {docket docket = new docket (documentationType.swagger_2); docket.apiinfo (apiinfo ()); Docket.select (). APIS (RequestHandlerselectors.withmethodannotation (ApiOperation.class)); Docket.select (). Paths (pathselectors.regex ("/API /.*")). Build (); Return Docket; } private apiInfo apiInfo () {contact contact = hubungi baru ("xiao ming", "http://www.baidu.com", "[email protected]"); Kembalikan APIInfo baru ("API Interface", // Judul Besar "API Interface", // Subtitle "0.0.1", // Versi "www.baidu.com", // SecondOfServiceUrl, // Penulis "API Interface", // Link Teks Teks "http://www.bw.bw.baid). }}Catatan: Karena kelas SwaggerConfig mengkonfigurasi anotasi, kelas ini harus dipindai, yaitu kelas harus dimasukkan dalam konteks: component-scan.
Langkah 3: Gunakan anotasi pada kelas, metode, dan parameter
@Controller@RequestMapping("/api/v1")@Api(description = "API interface")public class ApiController { @ApiOperation(value = "User login", notes = "User login interface") @ApiResponses({ @ApiResponse(code = 0, message = "success"), @ApiResponse(code = 10001, message = "User name error", response = IllegalArgumentException.class), @apiresponse (kode = 10002, pesan = "kesalahan kata sandi")}) @RequestMapping (value = "/user/login", Method = requestMethod.post, memproduksi {"Application/json; charset = UTF-8;"}) @responseBody publybody/json; charset = UTF-8; "}) @responseBody publybody/JSONEP; lOmin (USSEP = UTF-8;"}) @ResponseBody STRING BOMPOBEDY/JSON; "Nama pengguna", wajib = true) @RequestParam string username, @apiparam (name = "password", value = "password", wajib = true) @requestparam kata sandi) {return "{'nama pengguna': '" + nama pengguna + ",' kata sandi ':'" + " +" '} "; } @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "phone", dataType = "String", required = true, value = "mobile number"), @ApiImplicitParam(paramType = "query", name = "nickname", dataType = "String", required = true, value = "nickname", defaultValue = "double-click 666 "), @ApIImplicitParam (paramType =" path ", name =" platform ", datasype =" string ", wajib = true, value =" platform ", defaultValue =" pc "), @apiImplicitParam (nilai ParamType =" name = "name =" DataType = "String", Nilai = Nilai = "Nilai =" Name "), DataType =" String ", Nilai = Nilai =" Nilai = "), DataType =" String ", Nilai = Nilai =" Nilai = "Nilai =" Name ", DataType =" Nilai ", Nilai =" "/{platform}/user/regist", Method = requestMethod.post, menghasilkan = {"Application/json; charset = utf-8;"}) @ResponseBody string public regist (@RequestHeader string phone, "@requestparam nickname, @pathvariable string platform string, @Requestbody @'@RequestParam {@pathvariable platform string, @Requestbody {@Requestbody {@RequestBody {@Requestbody {@pathvariable, 'Nickname': '" + Nickname +"', 'Platform': '" + Platform +"', 'Password': '" + Password +"'} "; } @RequestMapping (value = "/user/list", method = requestMethod.get, menghasilkan = {"Application/json; charset = utf-8;"}) @ResponseBody String publik getUserList (pager pager) {return "[{'id':"+pager.getpage (), 'USERN ",' USERN", 'USERN ",' USERN", 'USERN ",' USERN", 'USERN ",' USERN", 'USERN ",' USERN", 'USERN ",' USERN (), 'zhangsan "+pager.getsize ()+"'}] "; } @RequestMapping ("/docs") @apignore public string test () {return "API-DOCS"; }}Pager
Public Class Pager {@ApimodelProperty (value = "Page Number", wajib = true) Private int Page; @Apimodelproperty (value = "jumlah per halaman", diperlukan = true) ukuran int pribadi; pagar public () {} int getPage publik () {return page; } public void setPage (int halaman) {this.page = halaman; } public int getSize () {ukuran pengembalian; } public void setSize (int ixe) {this.size = size; }}Anotasi Umum:
Langkah 4: Access /V2 /API-DOCS
Kunjungi http: // localhost: 8080/nama proyek/v2/API-docs di browser, jika ada konten json, itu normal
Langkah 5: Unduh Swagger-UI
Unduh https://github.com/swagger-api/swagger-ui dari github. Perhatikan bahwa Anda perlu memilih unduh v2.2.10 (https://github.com/swagger-api/swagger-ui/tree/v2.2.10 (unduhan lokal)). Metode integrasi yang lebih besar dari versi ini berbeda.
Metode Integrasi: Masukkan semua file di direktori dist di bawah v2.2.10 ke dalam file statis di proyek Anda, dan gunakan kode berikut untuk menimpa bagian skrip dalam index.html
<script type = "text/javascript"> var baseUrl = ""; $ (function () {var url = window.location.search.match (/url = ([^&] +)/); if (url && url.length> 1) {url = decodeuricomponent (url [1]);} else {// API-docs alamat yang dijelaskan di atas url = BASEURL "/WEB API/WEB2; (window.swaggertranslator) {window.swaggertranslator.translate ();} window.swaggerui = baru swaggerui ({url: url, validatorUrl: tidak terdefinisi, dom_id: "function-oI-container", delupedsubmitMethods: ['get', 'post', ',', ',', ',', ',', 'PATCHET', PATCRETE, ['GET', PATCRETE, DOMPLAGETE, ['GET', DOMPLAGETE, " (Swaggerapi, Swaggerui) {if (typeOf initoAuth == "function") {initoAuth ({clientId: "your-client-id", clientsecret: "apprpary-secret-if-anquired", {{{{{{{{{{{"," if (window.swaggertranslator) {window.swaggertranslator.translate (); JsonEditor: False, Apissorter: "Alpha", DefaultModelrendering: 'Schema', ShowRequestheaders: False}); window.swaggerui.api.clientAuthorizations.add ("token", tokenHeader); </script> Langkah 6: Akses indeks.html yang dimodifikasi di atas
http: // localhost: 8080/nama proyek/statis/pihak ketiga/Swagger-ui/index.html
Catatan: Karena Anda ingin mengakses sumber daya statis, pastikan sumber daya statis dapat diakses menggunakan SpringMVC. Jika Anda tidak dapat mengakses, silakan buat konfigurasi berikut:
1. Tambahkan prosesor servlet default ke file konfigurasi pegas
<!-Filter Sumber Daya Statis-> <mvc: default-servlet-handler/>
2. Tambahkan file statis untuk difilter di web.xml
<!-Menyaring Sumber Daya Statis-> <servlet-Mapping> <servlet-name> default </servlet-name> <rat pola>*.
Contoh Struktur Kode Proyek:
Contoh lengkap alamat unduhan demo: http://xiazai.vevb.com/201804/yuanma/platform-springmvc-webapp(vevb.com).rar
lainnya
Tentang spring-servlet.xml dan applicationContext.xml
SpringMVC menyediakan dua file konfigurasi spring-servlet.xml dan applicationContext.xml
Spring-servlet.xml adalah level pengontrol, dan ruang lingkup aksinya adalah lapisan kontrol. Nama defaultnya adalah [servlet-name] -servlet.xml
Secara default, ditempatkan di Web-INF/ direktori. SpringMVC akan secara otomatis memuat, dan juga dapat dikonfigurasi di Web.xml.
<servlet> <servlet-name> spring-mvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <Ilin-param> <param-name> ContextConfigLocation </param-name> <param-value> <Boad-on-startup> 1 </boad-on-startup> </servlet>
Secara umum, beberapa konfigurasi terkait pengontrol dikonfigurasi dalam spring-servlet.xml, seperti resolusi tampilan, pemetaan file sumber daya statis, penguraian hasil pengembalian, dll.
View Analysis
Pemetaan Sumber Daya Statis
<mvc: sumber daya lokasi = "/statis/" pemetaan = "/statis/**"/> <mvc: sumber daya lokasi = "/gambar/" pemetaan = "/statis/**"/> <mvc: sumber daya lokasi = "/css/" mapping = "/static/**"/> <mvc: sumber daya lokasi = "/JS/JS/JS/BAGIAN =" Lokasi = "/html/" pemetaan = "/static/**"/> <mvc: sumber daya lokasi = "/unggah/" pemetaan = "/statis/**"/>
org.springframework.context.support.resourceBundlemessageSource
Analisis hasil
3. ApplicationContext.xml adalah konfigurasi tingkat sistem, dan ruang lingkup fungsinya adalah konteks sistem. Inisialnya perlu dikonfigurasi dalam konteks-param di web.xml.
<context-param> <Param-name> ContextConfigLocation </param-name> <Param-Value> classpath: conf/spring/spring-*. xml </param-value> </context-param>
4. Mengenai ApplicationContxt.xml, umumnya dibagi menjadi beberapa file konfigurasi sesuai dengan fungsi, seperti:
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.