ชิ้นส่วนพื้นฐาน
1. บทนำสู่ Fastjson
Fastjson เป็นไลบรารี Java ที่สามารถใช้ในการแปลงวัตถุ Java เป็นตัวแทน JSON นอกจากนี้ยังสามารถใช้ในการแปลงสตริง JSON เป็นวัตถุ Java ที่เทียบเท่า มันควรจะเป็นความเร็วในการแปลงที่เร็วที่สุดและเกือบจะกลายเป็นมาตรฐานของโครงการ (มักจะใช้ FastJSON แทนแจ็คสันเมื่อคำขอ AJAX และการพัฒนาส่วนต่อประสาน)
GitHub: https://github.com/alibaba/fastjson (ดาวน์โหลดท้องถิ่น)
ลักษณะ:
คุณสมบัติหลัก:
2. Fastjson API
คลาสรายการ Fastjson API คือ com.alibaba.fastjson.json การดำเนินการแบบอนุกรมทั่วไปสามารถทำได้โดยตรงโดยวิธีการคงที่ในคลาส JSON
// Parse JSON Text เป็น JsonObject หรือ JSONARRAY การแยกวัตถุสุดท้ายของ JsonArray (ข้อความสตริง); // Parse JSON Text ลงใน JsonObject สาธารณะคงที่สุดท้าย JSONObject ParseObject (ข้อความสตริง); // วิเคราะห์ข้อความ JSON เป็น Javabean สาธารณะคงที่สุดท้าย <T> t parseObject (ข้อความสตริงคลาส <t> clazz); // Parse Json Text ลงใน JsonArray สาธารณะคงที่สุดท้าย JsonArray Parsearray (ข้อความสตริง); // แยกวิเคราะห์ข้อความ JSON ลงใน Javabean Collection สาธารณะคงที่ <T> รายการ <T> Parsearray (ข้อความสตริง, คลาส <t> clazz); // serialize javabean ลงใน JSON ข้อความสาธารณะคงที่สตริงสุดท้าย tojsonstring (วัตถุวัตถุ); // serialize javabean เป็น jsonstring ที่จัดรูปแบบ (วัตถุวัตถุบูลีน prettyformat); // แปลง Javabean เป็น JsonObject หรือ JsonArraypublic วัตถุสุดท้ายคงที่ tojson (Object Javaobject);
JSONARRAY: เทียบเท่ากับรายการ <Ojrop>
jsonObject: เทียบเท่ากับแผนที่ <สตริงวัตถุ>
serializeConfig: เป็นการกำหนดค่าพิเศษสำหรับกระบวนการทำให้เป็นอนุกรมในระหว่างกระบวนการทำให้เป็นอนุกรมเช่นการจัดรูปแบบบางฟิลด์ (วันที่การแจงนับ ฯลฯ )
serializewriter: เทียบเท่ากับ StringBuffer
คุณสมบัติ SerializerFeature:
ส่วนที่เป็นประโยชน์
1. แนะนำการพึ่งพาสปริง MVC และ 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:/MANCMMMMMMMMMMMMMMMMMMMMMMMMMMBM http://maven.apache.org/maven-v4_0_0.xsd "> <modersion> 4.0.0 </modelversion> <roupid> com.mengdee </groupid> <ratifactid> platform-springmvc-webapp </artifactid> <packaging> <name> platform-springmvc-webapp maven webapp </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <log4j.version> 2.5 </log4j.version> <jstl.version> 1.2 </jstl.version> <pring.version> 4.2.3.release </spring.version> <fastjson.version> 1.2.32 </fastjson.ersion> <ArtIfactId> Junit </artifactId> <sersion> 3.8.1 </Spope> <Scope> ทดสอบ </cope> </การพึ่งพา> <การพึ่งพาอาศัย> <roupId> javax.servlet </groupId> <ArtIfactId> jstl </artifactid> <version> <RoupID> org.springframework </groupId> <ratifactId> Spring-Webmvc </artifactid> <sersion> $ {spring.version} </version> </การพึ่งพา> <การพึ่งพา> <loupid> org.springframework </roupid> <ratifactid> </permentency> <predency> <roupId> org.springframework </groupId> <ratifactId> Spring-Context </artifactId> <persion> $ {Spring.Version} </Servive> <cerson> $ {spring.version} </version> </การพึ่งพา> <การพึ่งพา> <loupId> org.springframework </groupId> <ratifactid> Spring-Jdbc </artifactid> <version> $ {Spring.version} <ArtIfactId> fastJSON </artIfactId> <cersion> $ {fastjson.version} </เวอร์ชัน> </การพึ่งพา> </percies> <!-การใช้ Aliyun Mirror-> <ที่เก็บ> <repository> <id> Aliyun </id> <url> http://maven.aliyun.com/nexus/content/groups/public </url> </pository> </pository> </repository> </repository> <uffors>2. กำหนดค่า web.xml
<! doctype web-app public "-// Sun Microsystems, Inc.//dtd Web Application 2.3 // en" "http://java.sun.com/dtd/web-app_2_3 <param-value> classpath: conf/spring/spring-*. xml </param-value> </context-param> <sentioner> <scription> ผู้ฟังฤดูใบไม้ผลิ </คำอธิบาย> <Sisterer-Lass> org.springframework.web.context.context.context.context.contextllistener <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> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name> Spring-Mvc </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <Tilter-class> org.springframework.web.filter.characterencodingFilter </filter-class> <init-Param> <param-name> การเข้ารหัส </param-name> <param-value> UTF-8 </param-value> <param-value> True </param-value> </itrin-Param> </filter> <Filter-Mapping> <stripter-name> ตัวอักษร actaryencodingfilter </filter-name> <url-pattern>/*</url--pattern> <Rorror-Code> 404 </Error-Code> <location> /index.jsp </location> </srors-page> </web-app>
3. กำหนดค่า Spring-servlet.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: p = "http://www.springframework.org/schema/p" xmlns: บริบท = "http://www.springframework.org/schema/contex XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http:/ http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context <บริบท: Component-Scan base-package = "com.mengdee.Manage.controller"/> <bean id = "viewResolver"> <property name = "คำนำหน้า" value = "/"> </คุณสมบัติ> <! ยังสามารถใช้ความเร็วและสิ่งอื่น ๆ-> <property name = "viewClass" value = "org.springframework.web.servlet.view.jstlview"> </proty> </ebean> <! register-defaults = "true"> <!-กำหนดค่า fastjson เพื่อแทนที่การสนับสนุน Jackson ดั้งเดิม-> <bean> <property name = "supportedediatypes"> <list> <value> text/html; charset = utf-8 </alue> เครื่องหมายคำพูดเมื่อคีย์เอาท์พุทค่าเริ่มต้นเป็นจริง-> <value> writeMapNullValue </ค่า> <!-ไม่ว่าจะส่งออกฟิลด์ที่มีค่า null ค่าเริ่มต้นเป็นเท็จ-> <!-<value> disableCircularReference <value> writenullnumberaszero </alue> หากฟิลด์ตัวเลขเป็นโมฆะเอาต์พุตคือ 0 ไม่ใช่ค่า NULL <ค่า> writenullBooleanasfalse </value> ฟิลด์บูลีนเป็นค่าที่เป็นเท็จ </mvc: ข้อความคอนเวอร์เตอร์> </mvc: คำอธิบายประกอบ-ไดรฟ์> </ebeans>
4. Java
การศึกษา: การศึกษา (ชั้นเรียนแจงนับ)
แพ็คเกจ com.mengdee.Manage.entity; นำเข้า java.util.hashmap; นำเข้า java.util.map;/** * การศึกษา * @author ผู้ดูแลระบบ * */การศึกษาของ Enum สาธารณะ มหาวิทยาลัย ("มหาวิทยาลัย", 5), วิทยาลัย ("วิทยาลัย", 6); แผนที่สุดท้ายของเอกชนคงที่ <จำนวนเต็ม, การศึกษา> Education_map = HashMap ใหม่ <จำนวนเต็ม, การศึกษา> (); แบบคงที่ {สำหรับ (การศึกษาการศึกษา: การศึกษาค่า ()) {Education_map.put (Education.getIndex (), การศึกษา); }} ข้อความสตริงส่วนตัว; ดัชนี INT ส่วนตัว การศึกษาส่วนตัว (ข้อความสตริง, ดัชนี int) {this.text = text; this.index = ดัชนี; } สตริงสาธารณะ getText () {ส่งคืนข้อความ; } โมฆะสาธารณะ setText (ข้อความสตริง) {this.text = text; } public int getIndex () {return index; } โมฆะสาธารณะ setIndex (ดัชนี int) {this.index = index; } การศึกษาแบบคงที่สาธารณะ getenum (ดัชนีจำนวนเต็ม) {return education_map.get (ดัชนี); -บุคคล:
แพ็คเกจ com.mengdee.manage.entity; นำเข้า java.util.arraylist; นำเข้า java.util.date; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า com.alibaba.fastjson.annotation.jsonfield; ชื่อสตริงส่วนตัว; เพศไบต์ส่วนตัว // เพศ 1: ชาย 2: หญิงอายุสั้นส่วนตัว; // อายุเงินเดือนส่วนตัว // เงินเดือนส่วนตัวน้ำหนักสองเท่า; // น้ำหนักถ่านส่วนตัว; // จัดอันดับผู้ใหญ่บูลีนส่วนตัว; // ไม่ว่าจะเป็นวันเกิดส่วนตัวสำหรับผู้ใหญ่หรือไม่ // วันเกิดการศึกษาเอกชนการศึกษา; // คุณสมบัติการศึกษาส่วนตัวสตริงส่วนตัว [] งานอดิเรก; // งานอดิเรกรายการส่วนตัว <og> สุนัข; // Pet Dog Private Map <String, Object> ที่อยู่; // ที่อยู่ // ใช้คำอธิบายประกอบเพื่อควบคุมว่าคุณต้องการ serialize @JSONFIELD (serialize = false) รายการส่วนตัว <Ojrop> OBJ = arrayList ใหม่ <> (); บุคคลสาธารณะ () {} บุคคลสาธารณะ (ID ยาว, ชื่อสตริง, เพศไบต์, อายุสั้น, เงินเดือนยาว, น้ำหนักสองเท่า, ระดับถ่าน, บูลีนผู้ใหญ่, วันเกิดวันเกิด, สตริง [] งานอดิเรก, รายการ <ogu> สุนัข, แผนที่ <สตริง, วัตถุ> ที่อยู่) {super (); this.id = id; this.name = ชื่อ; this.gender = เพศ; this.age = อายุ; this.salary = เงินเดือน; this.weight = น้ำหนัก; this.level = ระดับ; this.adult = ผู้ใหญ่; this.birthday = วันเกิด; this.hobbies = งานอดิเรก; this.dogs = สุนัข; this.address = ที่อยู่; } สาธารณะ Long getId () {return id; } โมฆะสาธารณะ setId (Long id) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } ไบต์สาธารณะ getGender () {กลับเพศ; } โมฆะสาธารณะ setGender (ไบต์เพศ) {this.gender = เพศ; } Public Short Getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุสั้น) {this.age = อายุ; } Public Long GetSalary () {คืนเงินเดือน; } โมฆะสาธารณะ setSalary (เงินเดือนยาว) {this.salary = เงินเดือน; } สาธารณะ double getweight () {น้ำหนักคืน; } โมฆะสาธารณะ setweight (น้ำหนักสองเท่า) {this.weight = น้ำหนัก; } ถ่านสาธารณะ GetLevel () {ระดับคืน; } โมฆะสาธารณะ setlevel (ระดับถ่าน) {this.level = ระดับ; } บูลีนสาธารณะ isadult () {return ผู้ใหญ่; } โมฆะสาธารณะ setadult (ผู้ใหญ่บูลีน) {this.adult = ผู้ใหญ่; } วันที่สาธารณะ getBirthday () {ส่งคืนวันเกิด; } โมฆะสาธารณะ setBirthday (วันเกิดวันที่) {this.birthday = วันเกิด; } // จัดการประเภทการแจกแจงแบบอนุกรมค่าเริ่มต้นคือสตริงค่า enum แบบอนุกรมแทนที่จะเป็นดัชนีการเชื่อมโยง enum หรือข้อความ @JSONFIELD (name = "edu") สาธารณะ int getedu () {return Education.getIndex (); } @jsonfield (name = "edu") โมฆะสาธารณะ setedu (ดัชนี int) {this.Education = Education.getenum (ดัชนี); } @JSONFIELD (serialize = false) การศึกษาสาธารณะ GetEducation () {return Education; } @jsonfield (serialize = false) โมฆะสาธารณะ seteducation (การศึกษาการศึกษา) {this.eeducation = การศึกษา; } สตริงสาธารณะ [] gethobbies () {กลับงานอดิเรก; } โมฆะสาธารณะ sethobbies (สตริง [] งานอดิเรก) {this.hobbies = งานอดิเรก; } รายการสาธารณะ <Dog> getDogs () {Return Dogs; } โมฆะสาธารณะ setdogs (รายการ <ogu> สุนัข) {this.dogs = dogs; } แผนที่สาธารณะ <String, Object> getAddress () {return address; } โมฆะสาธารณะ setAddress (แผนที่ <สตริงวัตถุ> ที่อยู่) {this.address = ที่อยู่; -TestController
แพ็คเกจ com.mengdee.manage.controller; นำเข้า java.text.decimalformat; นำเข้า java.util.arraylist; นำเข้า java.util.date นำเข้า java.util.hashmap; นำเข้า java.util.list; org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า com.alibaba.fastjson.json; นำเข้า com.alibaba.fastjson.jsonarray; com.alibaba.fastjson.serializer.serializeConfig; นำเข้า com.alibaba.fastjson.serializer.simpledateFormatserializer; นำเข้า com.mengdee.Manage.entity.Address; com.mengdee.manage.entity.person; @controllerpublic คลาส testcontroller {ส่วนตัว serializeconfig serializeConfig = ใหม่ serializeConfig (); Static {serializeConfig.put (วันที่, คลาส, ใหม่ simpledateFormatserializer ("yyyy-mm-dd hh: mm: ss")); serializeConfig.put (double.class, ใหม่ doubleserializer (decimalformat ใหม่ ("0.00"))); } @RequestMapping ("/index") ดัชนีสตริงสาธารณะ () {return "index"; } // javabean to object @requestmapping ("/json") @ResponseBody วัตถุสาธารณะ json () {บุคคลบุคคล = บุคคลใหม่ (); person.setId (1L); person.setName ("Mengdee"); person.setage ((สั้น) 18); /// * {"วันเกิด": null, "น้ำหนัก": 0, "สุนัข": null, "ผู้ใหญ่": เท็จ, "งานอดิเรก": null, "การศึกษา": null, "id": 1, "ระดับ": "", "ที่อยู่": null, "อายุ": กลับมาเป็นบุคคล } // javabean ถึง string @requestmapping ("/json2") @ResponseBody สตริงสาธารณะ json2 () {person person = บุคคลใหม่ (); person.setId (1L); person.setName ("Mengdee"); person.setage ((สั้น) 18); // หากใช้ค่า NULL จะไม่สามารถทดสอบได้ <value> writeMapNullValue </alue> // "{" ผู้ใหญ่ ": เท็จ" อายุ ": 18," เพศ ": 0," id ": 1," ระดับ ":" "," ชื่อ ":" Mengdee "," เงินเดือน ": 0," น้ำหนัก ": 0.0} กลับ jsonstring; } @RequestMapping ("/json3") @ResponseBody วัตถุสาธารณะ json3 () {person person = บุคคลใหม่ (); person.setId (1L); person.setName ("Mengdee"); person.setage ((สั้น) 18); person.setBirthday (วันที่ใหม่ ()); Object personjson = json.tojson (บุคคล); // json.tojson (บุคคล) ค่าเริ่มต้นเป็นมิลลิวินาที "วันเกิด": 1495073314780, // ใช้หมายเลขซีเรียล serializeConfig เพื่อกำหนดค่าการจัดรูปแบบสำหรับวันที่ // "{" วันเกิด ":" 2017-05-18 10:19:55 "," น้ำหนัก ": 0.0," ผู้ใหญ่ ": เท็จ," id ": 1," ระดับ ":" "," อายุ ": 18," ชื่อ ":" mengdee "," เพศ ": 0," เงินเดือน ": 0}" jsonstring = json.tojsonstring กลับ jsonstring; } @RequestMapping ("/json4") @ResponseBody วัตถุสาธารณะ json4 () {person person = บุคคลใหม่ (); person.setId (1L); person.setName ("Mengdee"); person.setage ((สั้น) 18); person.setBirthday (วันที่ใหม่ ()); person.seteducation (Education.university); // การแจงนับสตริง [] งานอดิเรก = {"อ่าน", "การท่องเที่ยว"}; บุคคล Sethobbies (งานอดิเรก); Dog Dog1 = สุนัขใหม่ (1L, "Dog1", (สั้น) 1); Dog Dog2 = สุนัขตัวใหม่ (2L, "Dog2", (สั้น) 2); รายการ <Dog> DOGS = New ArrayList <> (); Dogs.add (Dog1); Dogs.add (Dog2); person.setdogs (สุนัข); ที่อยู่ที่อยู่ 1 = ที่อยู่ใหม่ (1L, "เซี่ยงไฮ้ Pudong เขตใหม่"); ที่อยู่ที่อยู่ 2 = ที่อยู่ใหม่ (2L, "เขตเซี่ยงไฮ้ Baoshan"); แผนที่ <string, Object> addressMap = ใหม่ hashmap <> (); addressmap.put (address1.getId () + "", address1); addressmap.put (address2.getId () + "", address2); person.setAddress (addressmap); Object personjson = json.tojson (บุคคล); กลับมาเป็นบุคคล } @RequestMapping ("/json5") @ResponseBody Public String json5 () {Dog Dog1 = สุนัขใหม่ (1L, "Dog1", (สั้น) 1); Dog Dog2 = สุนัขตัวใหม่ (2L, "Dog2", (สั้น) 2); รายการ <Dog> DOGS = New ArrayList <> (); Dogs.add (Dog1); Dogs.add (Dog2); // list <t> -> json string jsonstring = json.tojsonstring (สุนัข, เท็จ); System.out.println (jsonstring); // JSON -> รายการ <t> รายการ <Dog> parsearray = json.parsearray (jsonstring, dog.class); สำหรับ (Dog Dog: Parsearray) {System.out.println (Dog); } แผนที่ <String, Dog> Map = ใหม่ HashMap <String, Dog> (); map.put ("dog1", สุนัขใหม่ (1l, "dog1", (สั้น) 1)); map.put ("dog2", สุนัขใหม่ (2l, "dog2", (สั้น) 2)); map.put ("dog3", สุนัขใหม่ (3L, "dog3", (สั้น) 3)); // แผนที่ -> json String mapjsonstring = json.tojsonstring (แผนที่จริง); System.out.println (mapjsonstring); // json -> แผนที่ @SuppressWarnings ("ไม่ได้ตรวจสอบ") แผนที่ <สตริง, สุนัข> map1 = (แผนที่ <สตริง, สุนัข>) json.parse (mapjsonstring); สำหรับ (คีย์สตริง: map1.keyset ()) {system.out.println (คีย์ + ":" + map1.get (คีย์)); } // array -> json String [] Hobbies = {"A", "B", "C"}; สตริง hobbiessTring = json.tojsonstring (งานอดิเรก, จริง); System.out.println (งานอดิเรก); // json -> array jsonarray jsonarray = json.parsearray (hobbiessstring); สำหรับ (Object O: JsonArray) {System.out.println (O); } system.out.println (jsonarray); กลับ jsonstring; -การรวมเข้าด้วยกัน
ขั้นตอนที่ 1: แนะนำการพึ่งพาที่เกี่ยวข้อง
<Ependency> <sderctId> io.springfox </groupId> <ratifactid> SpringFox-Swagger2 </artifactId> <persion> 2.6.1 </เวอร์ชัน> <pope> คอมไพล์ </scope> <Sersion> 2.6.6 </Servent> </dermentency>
ขั้นตอนที่ 2: การกำหนดค่าข้อมูล Swagger
Swaggerconfig.java
@การกำหนดค่า@enablewebmvc@enablewagger2public คลาส swaggerconfig {@bean public Docket CustomDocket () {docket conket = ใบปะหน้าใหม่ (DocumentationType.swagger_2); docket.apiinfo (apiinfo ()); Docket.select (). APIs (requesthandlerselectors.withMethodannotation (apioperation.class)); docket.select (). paths (pathselectors.regex ("/api /.*")). build (); ส่งคืนใบปะหน้า; } Private Apiinfo apiinfo () {ติดต่อติดต่อ = ผู้ติดต่อใหม่ ("Xiao Ming", "http://www.baidu.com", "[email protected]"); ส่งคืน APIINFO ใหม่ ("API Interface", // ชื่อเรื่องใหญ่ "API Interface", // คำบรรยาย "0.0.1", // เวอร์ชัน "www.baidu.com", // TESTOFSERVICICEURL ผู้ติดต่อ // AUTHER "API Interface" -หมายเหตุ: เนื่องจากคลาส SwaggerConfig กำหนดค่าคำอธิบายประกอบคลาสนี้จะต้องสแกนนั่นคือคลาสจะต้องรวมอยู่ในบริบท: Component-Scan
ขั้นตอนที่ 3: ใช้คำอธิบายประกอบในคลาสวิธีการและพารามิเตอร์
@controller @requestmapping ("/api/v1") @api (คำอธิบาย = "api interface") คลาสสาธารณะ apicontroller {@apioperation (value = "ผู้ใช้เข้าสู่ระบบ", notes = "อินเตอร์เฟสการเข้าสู่ระบบของผู้ใช้") @apiresponses unlueLargumentException.class), @apiresponse (รหัส = 10002, ข้อความ = "ข้อผิดพลาดรหัสผ่าน")}) @requestmapping (value = "/ผู้ใช้/เข้าสู่ระบบ", method = requestMethod.post, ผลิต = {"แอปพลิเคชัน/json; True) @RequestParam String ชื่อผู้ใช้ชื่อ @Apiparam (name = "รหัสผ่าน" value = "รหัสผ่าน", จำเป็น = true) @requestparam รหัสผ่านสตริง) {return "{'ชื่อผู้ใช้': '" + ชื่อผู้ใช้ + "', 'รหัสผ่าน': '" รหัสผ่าน + "'}"; } @apiimplicitparams ({@apiimplicitparam (paramtype = "header", name = "phone", datatype = "String", ต้องการ = true, value = "Mobile Number"), @apiimplicitparam (paramType = "query", name = "ชื่อเล่น" 666 "), @apiimplicitparam (paramType =" path ", name =" platform ", dataType =" String ", ต้องการ = true, value =" Platform ", defaultValue =" PC "), @apiimplicitParam (paramType =" body ", name =" รหัสผ่าน " "/{แพลตฟอร์ม}/ผู้ใช้/รีจิสต์", method = requestMethod.post, ผลิต = {"แอปพลิเคชัน/json; charset = utf-8;"}) @ResponseBody String String (@Requestheader String โทรศัพท์ {{usrequestparam {{{{{{{{{{{ @ 'ชื่อเล่น': '" + ชื่อเล่น +"', 'แพลตฟอร์ม': '" + แพลตฟอร์ม +"', 'รหัสผ่าน': '" + รหัสผ่าน +"'} "; } @RequestMapping (value = "/user/list", method = requestMethod.get, ผลิต = {"แอปพลิเคชัน/json; charset = utf-8;"}) @ResponseBody สตริงสาธารณะ getUserList 'Zhangsan "+Pager.getSize ()+"'}] "; } @requestmapping ("/docs") @apiignore การทดสอบสตริงสาธารณะ () {return "api-docs"; -เพจเจอร์
เพจเจอร์ระดับสาธารณะ {@apimodelProperty (value = "หมายเลขหน้า", จำเป็น = true) หน้า int ส่วนตัว; @ApimodelProperty (value = "จำนวนต่อหน้า", จำเป็น = true) ขนาด int ส่วนตัว; Public Pager () {} public int getPage () {หน้าคืน; } public void setPage (หน้า int) {this.page = page; } public int getSize () {ขนาดคืน; } โมฆะสาธารณะ setsize (ขนาด int) {this.size = size; -คำอธิบายประกอบทั่วไป:
ขั้นตอนที่ 4: Access /V2 /API-DOCS
เยี่ยมชม http: // localhost: 8080/ชื่อโครงการ/v2/api-docs บนเบราว์เซอร์หากมีเนื้อหา JSON เป็นเรื่องปกติ
ขั้นตอนที่ 5: ดาวน์โหลด Swagger-ui
ดาวน์โหลด https://github.com/swagger-api/swagger-ui จาก GitHub โปรดทราบว่าคุณต้องเลือกดาวน์โหลด v2.2.10 (https://github.com/swagger-api/swagger-ui/tree/v2.2.10 (ดาวน์โหลดท้องถิ่น)) วิธีการรวมที่มากกว่ารุ่นนี้แตกต่างกัน
วิธีการรวม: ใส่ไฟล์ทั้งหมดในไดเรกทอรี DIST ภายใต้ v2.2.10 ลงในไฟล์คงที่ในโครงการของคุณและใช้รหัสต่อไปนี้เพื่อเขียนทับส่วนสคริปต์ใน index.html
<script type = "text/javascript"> var baseUrl = ""; $ (function () {var url = window.location.search.match (/url = ([^&] +)/); ถ้า (url && url.length> 1) {url = decodeuricomponent (url [1]); (window.swaggertranslator) {window.waggertranslator.translate ();} window.swaggerui = ใหม่ swaggerui ({url: url, validatorurl: undefined, dom_id: 'swagger-ui-container " (swaggerapi, swaggerui) {ถ้า (typeof initoauth == "function") {initoauth ({clientId: "คุณ-client-id", clientsecret: "client-secret-if-required", ", realms" } if (window.swaggertranslator) {window.waggertranslator.translate (); "ไม่มี", jsoneditor: false, apissorter: "alpha", defaultmodelrendering: 'schema', showrequestheaders: false}); โทเค็น "ส่วนหัว"); </script> ขั้นตอนที่ 6: เข้าถึง index.html แก้ไขด้านบน
http: // localhost: 8080/ชื่อโครงการ/คงที่/บุคคลที่สาม/swagger-ui/index.html
หมายเหตุ: เนื่องจากคุณต้องการเข้าถึงทรัพยากรคงที่โปรดตรวจสอบให้แน่ใจว่าสามารถเข้าถึงทรัพยากรแบบคงที่โดยใช้ SpringMVC หากคุณไม่สามารถเข้าถึงได้โปรดทำการกำหนดค่าต่อไปนี้:
1. เพิ่มโปรเซสเซอร์ Servlet เริ่มต้นในไฟล์การกำหนดค่าสปริง
<!-ตัวกรองทรัพยากรแบบคงที่-> <MVC: ค่าเริ่มต้น-บริการจัดการ/>>>>>>>>
2. เพิ่มไฟล์คงที่เพื่อกรองใน web.xml
<!-การกรองทรัพยากรแบบคงที่-> <servlet-mapping> <servlet-name> ค่าเริ่มต้น </servlet-name> <url-pattern>*. js </url-pattern> <url-pattern>*. css </url-pattern> <url-pattern>
ตัวอย่างโครงสร้างรหัสโครงการ:
ตัวอย่างการดาวน์โหลดตัวอย่างที่สมบูรณ์ดาวน์โหลดที่อยู่: http://xiazai.vevb.com/201804/yuanma/platform-springmvc-webapp(vevb.com).rar
อื่น
เกี่ยวกับ spring-servlet.xml และ applicationcontext.xml
SpringMvc จัดเตรียมไฟล์กำหนดค่าสองไฟล์ Spring-Servlet.xml และ ApplicationContext.xml
Spring-servlet.xml เป็นระดับคอนโทรลเลอร์และขอบเขตของการกระทำคือเลเยอร์ควบคุม ชื่อเริ่มต้นคือ [servlet-name] -servlet.xml
โดยค่าเริ่มต้นจะถูกวางไว้ใน Web-Inf/ Directory SpringMVC จะโหลดโดยอัตโนมัติและสามารถกำหนดค่าได้ใน web.xml
<servlet> <servlet-name> Spring-Mvc </servlet-name> <servlet-lass> org.springframework.web.servlet.dispatcherservlet </servlet-lass> <init-param> </init-param> <load-on-startup> 1 </load-on-startup> </servlet>
โดยทั่วไปการกำหนดค่าที่เกี่ยวข้องกับคอนโทรลเลอร์บางตัวได้รับการกำหนดค่าใน Spring-servlet.xml เช่นความละเอียดมุมมองการแมปของไฟล์ทรัพยากรคงที่การแยกวิเคราะห์ผลลัพธ์การส่งคืน ฯลฯ
ดูการวิเคราะห์
การทำแผนที่ทรัพยากรแบบคงที่
<MVC: ทรัพยากรตำแหน่ง = "/คงที่/" การแมป = "/คงที่/**"/> <mvc: แหล่งข้อมูล = "/ภาพ/" การแมป = "/คงที่/**"/> <mvc: แหล่งข้อมูล = "/css/" mapping = " location = "/html/" mapping = "/static/**"/> <mvc: ทรัพยากรตำแหน่ง = "/upload/" mapping = "/static/**"/>
org.springframework.context.support.resourcebundlemessagesource
การวิเคราะห์ผลลัพธ์
3. ApplicationContext.xml เป็นการกำหนดค่าระดับระบบและขอบเขตของฟังก์ชั่นคือบริบทของระบบ การเริ่มต้นของมันจะต้องมีการกำหนดค่าในบริบทพารามิเตอร์ใน web.xml
<context-param> <param-name> contextconfiglocation </param-name> <param-value> classpath: conf/spring/spring-*. xml </param-value> </context-param>
4. เกี่ยวกับ ApplicationContxt.xml โดยทั่วไปจะแบ่งออกเป็นไฟล์การกำหนดค่าหลายไฟล์ตามฟังก์ชั่นเช่น:
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com