เขียนด้านหน้า
บทความนี้เขียนในรูปแบบ Markdown นี่เป็นครั้งแรกที่ฉันเขียนสิ่งนี้ เค้าโครงอาจยุ่งเล็กน้อยและฉันหวังว่าคุณจะให้อภัยได้
ส่วนใหญ่เขียนว่าใช้ริบบิ้นเพื่อทำคำขอพักผ่อนทดสอบการใช้วิธีการต่าง ๆ โค้ดค่อนข้างซ้ำซ้อนซึ่งเหมาะสำหรับผู้เริ่มต้นดังนั้นฉันจึงให้มันฉีดพ่น ขอบคุณ
หลักฐาน
หมายเหตุ: ในบทความคุณต้องอัพเกรดรุ่น Spring-Boot-Starter-Parent เป็น 1.5.9.realease หรือสูงกว่า (รุ่น 1.3.7.Release ไม่มีคำอธิบายประกอบเหล่านี้)
ข้อเสนอแนะ: แอปพลิเคชั่น Microservice แต่ละตัวมีสปริง-บูม-แมรี่-พลาลูนและ Maven-compiler-plugin ของตัวเองและระบุว่าเวอร์ชันที่รวบรวม JDK คือ 1.8 วิธีการจำเพาะมีดังนี้: เพิ่มใน pom.xml
<สร้าง> <plugins> <plugin> <roupId> org.springframework.boot </groupid> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> </plugin> <plugin> <source> 1.8 </source> <garal> 1.8 </sourc
ทดสอบการก่อสร้างโครงการ
ศูนย์ลงทะเบียนยูเรก้า: ผู้ให้บริการจดทะเบียนศูนย์อ้างอิงผู้ให้บริการ: ผู้ให้บริการลงทะเบียนอ้างอิง
ผู้บริโภคริบบิ้น: การค้นพบบริการอ้างอิงและการบริโภค
หลังจากสร้างโครงการแล้วอย่าลืมติดตามไฟล์โฮสต์การกำหนดค่าที่กล่าวถึงในบทช่วยสอนเหล่านี้
เพื่อป้องกันไม่ให้การร้องขอในโครงการไม่เหมือนกันเราจะลบคลาสคอนโทรลเลอร์ทั้งหมด (ผู้ให้บริการและผู้บริโภค) ต่อไปฉันจะห่อหุ้มแต่ละวิธีการพักผ่อนในชั้นเรียนเพื่อให้ทุกคนดู
รับคำขอ
GetForentity: วิธีนี้มีสามแบบโอเวอร์โหลดคือ:
หมายเหตุ: วิธีนี้จะส่งคืนการตอบสนองของวัตถุ wrapper <t> โดยที่ t คือการตอบสนองที่ส่งผ่านเป็นประเภท หากคุณต้องการรับประเภทการส่งคืนคุณจะต้องใช้วิธี getBody () ของวัตถุ wrapper นี้
GetForObject: วิธีนี้ยังมีสามรูปแบบเกินพิกัดซึ่งเหมือนกับวิธี getForEntity:
หมายเหตุ: ประเภทวัตถุที่ส่งคืนโดยวิธีนี้คือการตอบสนองที่ส่งผ่านเป็นประเภท
เพื่อความสะดวกในการทดสอบระดับผู้ใช้เดียวกันนั้นมีอยู่ในผู้ให้บริการและผู้บริโภคบริการตามลำดับเพื่อความสะดวกในการทดสอบ
แพ็คเกจ com.cnblogs.hellxz;/** * pojo สำหรับการทดสอบ */ผู้ใช้คลาสสาธารณะ {ชื่อสตริงส่วนตัว; เซ็กซ์สตริงส่วนตัว; โทรศัพท์สตริงส่วนตัว ผู้ใช้สาธารณะ () {} ผู้ใช้สาธารณะ (ชื่อสตริง, String Sex, String Phone) {this.name = name; this.sex = เพศ; this.phone = โทรศัพท์; } public String toString () {return "user: {" + "ชื่อ:" + name + "," + "sex:" + sex + "," + "โทรศัพท์:" + โทรศัพท์ + "}"; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } Public String getSex () {return sex; } โมฆะสาธารณะ setsex (String sex) {this.sex = sex; } สตริงสาธารณะ getphone () {ส่งคืนโทรศัพท์; } โมฆะสาธารณะ setphone (โทรศัพท์สตริง) {this.phone = โทรศัพท์; -ด้านล่างเราสร้าง GetRequestController ที่ผู้ให้บริการ
แพ็คเกจ com.cnblogs.hellxz; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.client.client.serviceinstance; org.springframework.web.bind.annotation.*;/*** @author: hellxz* @description: ผู้ให้บริการ* @date: 2018/4/18 11:36*/ @restcontrollerpublic คลาส getRequestController // inject client client ส่วนตัว logger สุดท้าย logger = logger.getLogger (getRequestController.class); /** * ไปทดสอบตรง */@getMapping (value = "/hello") สตริงสาธารณะสวัสดี () {// รับอินสแตนซ์บริการและฟังก์ชั่นคือการแสดงผลของคอนโซลในภายหลัง ServiceInstance ServiceInstance = client.getLocalserviceInstance (); logger.info ("/hello host:"+serviceinstance.gethost ()+"service_id:"+serviceInstance.getServiceId ()); กลับ "สวัสดี"; }/** * การทดสอบพารามิเตอร์ */@getMapping (value = "/greet/{dd}") การทักทายสตริงสาธารณะ (@PathVariable String dd) {ServiceInstance ServiceInstance = client.getLocalserviceInstance (); logger.info ("/hello host:"+serviceinstance.gethost ()+"service_id:"+serviceInstance.getServiceId ()); กลับ "สวัสดี"+dd; }/*** ส่งคืนวัตถุทดสอบ*/@getMapping ("/ผู้ใช้") ผู้ใช้สาธารณะ GetUser () {ServiceInstance ServiceInstance = client.getLocalserviceInstance (); logger.info ("/user"+ServiceInstance.getHost ()+"พอร์ต:"+ServiceInstance.getPort ()+"ServiceInstanceId:"+ServiceInstance.getServiceId ()); ส่งคืนผู้ใช้ใหม่ ("Hellxz", "Male", "123456789"); }/*** ส่งคืนวัตถุตามชื่อและการดำเนินการค้นหาฐานข้อมูลถูกจำลองที่นี่*/@getMapping ("/ผู้ใช้/{ชื่อ}") ผู้ใช้สาธารณะ getUserselect (@PathVariable ชื่อสตริง) logger.info ("/user"+ServiceInstance.getHost ()+"พอร์ต:"+ServiceInstance.getPort ()+"ServiceInstanceId:"+ServiceInstance.getServiceId ()); if (name.isempty ()) {ส่งคืนผู้ใช้ใหม่ (); } อื่นถ้า (name.equals ("Hellxz")) {ส่งคืนผู้ใช้ใหม่ ("Hellxz", "Male", "123456789"); } else {ส่งคืนผู้ใช้ใหม่ ("ผู้ใช้สุ่ม", "ชาย", "987654321"); -ต่อไปเราจะสร้าง getRequestController ในโครงการผู้บริโภคบริการ
แพ็คเกจ com.cnblogs.hellxz; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.http.Responseentity; org.springframework.web.client.resttemplate; นำเข้า org.springframework.web.util.uricomponents; นำเข้า org.springframework.web.util.uricomponentsbuilder; นำเข้า Java.net.uri; : Hellxz * @description: Ribbon Consumer Application Controller, รับคำขอ * @date: 2018/4/16 15:54 */ @restcontrollerpublic คลาส getRequestController {logger ส่วนตัว logger = logger.getLogger (getRequestController.class); @autowired // inject resttemplate ส่วนตัว resttemplate resttemplate; /** * ResponseEntity <t> getForentity (string url, คลาส <t> responsetype) * t getbody () วิธีการต่อไปนี้คือ */@getMapping (value = "/entity/noparam") public String noparamgetForentity () {// แสดงความคิดเห็นที่นี่ จะรายงาน // return resttemplate.getForentity ("http: // localhost: 8080/hello", string.class) .getbody (); // ใช้ RestTemplate เพื่อเรียก microservice return resttemplate.getForentity ("http: // hello-service/hello", string.class) .getbody (); }/** * ResponseEntity <t> getForentity (string url, คลาส <t> responsetype, วัตถุ ... RestTemplate.getForentity ("http: // hello-service/user", user.class); Body user = entity.getBody (); logger.info ("ผู้ใช้:"+body); ร่างกายกลับ; // ข้างต้นสามารถย่อเป็น // return resttemplate.getForentity ("http: // hello-service/user", user.class) .getbody (); }/** * ResponseEntity <t> getForentity (string url, คลาส <t> responsetype, วัตถุ ... urivariables) * ใช้ตัวยึดตำแหน่งเพื่อแทนที่พารามิเตอร์และใช้วิธีการสตริง ถ้าเป็นเช่นนั้นให้ใช้ @PathVariable มิฉะนั้นให้ใช้ @RequestParam สตริงสาธารณะ getForentityByQuestionMarkParam (@RequestParam ("ชื่อ") ชื่อสตริง) {// การทดสอบหลักวิธีการ getEntity ที่นี่การทดสอบโดยตรงผ่านพารามิเตอร์ retEtMplate.getForentity ("http: // hello-service/wet/ }/*** วิธีการ getForentity จะแยกแผนที่ภายในและค่าของคีย์ตัวยึดติดตั้งกลับเข้าไปใน URL เป็นพารามิเตอร์* ResponseEntity <t> getForentity (url สตริง, คลาส <t> responsetype, map <String,?> urivariables)*/@getMapping มิฉะนั้นใช้ @RequestParam สตริงสาธารณะ getForEntityByMap (@PathVariable ("ชื่อ") ชื่อสตริง) {// การทดสอบหลักวิธีการ getEntity ที่นี่ทดสอบพารามิเตอร์แผนที่แผนที่ <สตริงสตริง> reqmap = new hashmap (); reqmap.put ("ชื่อ", ชื่อ); return resttemplate.getForentity ("http: // hello-service/greet/{name}", string.class, reqmap) .getbody (); }/** * ResponseEntity <t> getForObject (URI URL, คลาส <t> ResponsEtype) */@getMapping ("/entity/uri") สตริงสาธารณะ getForentityByuri () {// ใช้ URI เพื่อผ่านข้อโต้แย้ง UricomponentsBuilder.Fromuristring ("http: // hello-service/greet/{name}") .build (). ขยาย ("Laozhang") .encode (); uri uri = uricomponents.touri (); return resttemplate.getForentity (uri, string.class) .getBody (); }/** * t getForObject (สตริง url, คลาส <t> responseType) */@getMapping ("/object") ผู้ใช้สาธารณะ getForObjectWithNopAram () {// เปรียบเทียบกับวิธี getForEntity, การรับวัตถุ }/** * t getForObject (สตริง url, คลาส <t> responseType, แผนที่ <สตริง,?> urivariables) */@getMapping ("/วัตถุ/แผนที่") ผู้ใช้สาธารณะ getForObjectByMap () {// ใช้แผนที่เพื่อส่งแผนที่พารามิเตอร์ <สตริงสตริง> parammap = new hashmap <> () parammap.put ("ชื่อ", "Hellxz"); ส่งคืน RestTemplate.getForObject ("http: // hello-service/user", user.class, parammap); }/** * t getForObject (string url, คลาส <t> responsetype, วัตถุ ... urivariables) */@getMapping ("/object/param/{ชื่อ}") ผู้ใช้สาธารณะ getForobjectByparam (@PathVariable Name) }/** * t getForObject (uri url, คลาส <t> responsetype) */@getMapping ("/object/uri/{name}") ผู้ใช้สาธารณะ getForobjectByuri (@PathVariable string ชื่อ) .build (). ขยาย (ชื่อ) .encode (); uri uri = uricomponents.touri (); ส่งคืน resttemplate.getForObject (URI, user.class); -ก่อนอื่นเริ่มศูนย์การลงทะเบียนแล้วทดสอบโดยการเข้าถึงส่วนต่อประสานที่จัดทำโดยผู้บริโภค ทั้งหมดนี้ดำเนินการโดยฉันจริง ๆ ดังนั้นฉันจะไม่เขียนการทดสอบที่นี่
โพสต์คำขอ
ทั้งคำขอโพสต์และ GET Request มี *forentity และ *forobject วิธีการที่รายการพารามิเตอร์ค่อนข้างแตกต่างกัน นอกเหนือจากวิธีการทั้งสองนี้แล้วยังมีวิธีการโพสต์ฟอเรเลชั่นที่ postforlocation ส่งทรัพยากรเป็นคำขอโพสต์และส่งคืน URI ของทรัพยากรใหม่
Postforentity: มีสามรูปแบบเกินพิกัดของวิธีนี้คือ:
หมายเหตุ: วิธีนี้จะส่งคืนการตอบสนองของวัตถุ wrapper <t> โดยที่ t คือการตอบสนองที่ส่งผ่านเป็นประเภท หากคุณต้องการรับประเภทการส่งคืนคุณจะต้องใช้วิธี getBody () ของวัตถุ wrapper นี้
PostforObject: วิธีนี้ยังมีสามแบบโอเวอร์โหลดซึ่งเหมือนกับวิธีการ postforentity:
หมายเหตุ: ประเภทวัตถุที่ส่งคืนโดยวิธีนี้คือการตอบสนองที่ส่งผ่านเป็นประเภท
PostforLocation: นอกจากนี้ยังมีสามแบบโอเวอร์โหลดในวิธีนี้คือ:
หมายเหตุ: วิธีนี้ส่งคืน URI ของทรัพยากรใหม่ ความแตกต่างระหว่าง getForentity, getForObject, postforentity และ postforobject คือไม่จำเป็นต้องระบุประเภทการส่งคืนในวิธีนี้เนื่องจากประเภทการส่งคืนคือ URI มันยังคงต้องใช้ตัวยึดตำแหน่งที่จะผ่านข้อโต้แย้งผ่านวัตถุ ... urivariables, แผนที่ <string,?> urivariables ดูส่วน postforentity ของรหัส
ด้วยวิธีก่อนหน้านี้เราได้สร้าง PostRequestControllers ในโครงการที่ให้บริการผู้ให้บริการและผู้บริโภคตามลำดับ
รหัสบริการต่อไปนี้ PostController มีดังนี้:
แพ็คเกจ com.shunneng.springcloudhelloworld; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.web.bind.annotation. java.net.uri;/** * @author: hellxz * @description: * @date: 2018/4/18 10:21 */ @restcontrollerpublic คลาส postrequestcontroller {private logger logger = logger.getLogger /*** รับวัตถุและส่งคืนกลับ วิธีการ postforentity/postforobject เป็นเรื่องธรรมดา*/@postmapping ("/ผู้ใช้") ผู้ใช้สาธารณะ returnuserBypost (@requestbody ผู้ใช้ผู้ใช้) {logger.info ("/ใช้อินเตอร์เฟส"+ผู้ใช้); ถ้า (user == null) ส่งคืนผู้ใช้ใหม่ ("นี่คือวัตถุที่ว่างเปล่า", "", ""); ผู้ใช้ส่งคืน; }/** * ทดสอบพารามิเตอร์ของวิธีการ postforentity คุณสามารถตัดสินเอาต์พุต */@postmapping ("/ผู้ใช้/{str}") ผู้ใช้สาธารณะ returnuserBypost (@PathVariable String str, @requestbody ผู้ใช้) {logger.info ( ถ้า (user == null) ส่งคืนผู้ใช้ใหม่ ("นี่คือวัตถุที่ว่างเปล่า", "", ""); ผู้ใช้ส่งคืน; }/** * ส่งคืน URI สำหรับวิธีการ postforlocation */@postmapping ("/location") public uri returnuri (@requestbody ผู้ใช้ผู้ใช้) {// จำลอง URL ที่นี่ตำแหน่งทรัพยากรจริงอาจไม่อยู่ที่นี่ .build (). ขยาย (ผู้ใช้) .encode (); uri touri = uricomponents.touri (); // ฉันไม่รู้ว่าปัญหาคืออะไร เห็นได้ชัดว่ามันถูกสร้างขึ้น แต่ดูเหมือนว่า logger.info ("/ที่ตั้ง URI:"+Touri); กลับมา Touri; -รหัสผู้บริโภค PostRequestController:
แพ็คเกจ com.cnblogs.hellxz; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.http.Responseentity; org.springframework.web.bind.annotation.restcontroller; นำเข้า org.springframework.web.client.resttemplate; นำเข้า org.springframework.web.util.uricerponents; * @author: Hellxz * @description: Ribbon Consumer Post Request Controller * @date: 2018/4/18 9:47 */ @restcontrollerpublic คลาส postrequestcontroller {logger ส่วนตัว logger = logger.getLogger @AutoWired RestTemplate RestTemplate; /** * ResponseEntity <t> postforentity (url สตริง, คำขอวัตถุ, คลาส <t> responsetype) * ไม่ได้กล่าวถึง URL พารามิเตอร์ หากคำขอวัตถุไม่ใช่วัตถุ Httpentity มันจะถูกแปลงเป็นวัตถุ Httpentity โดยอัตโนมัติและถือว่าเป็นร่างกายที่สมบูรณ์ * หากเป็นวัตถุ httpentity มันจะถูกประมวลผลโดยตรงเป็นร่างกายและมีเนื้อหาส่วนหัว * ฉันจะไม่พูดถึงวิธีการเขียนใหม่ด้านล่าง วิธีการใช้งานนั้นเหมือนกับ Getforentity หากเป็นเพียงวัตถุโพสต์อย่างง่ายให้ใช้วิธีการที่ไม่มีวัตถุ ... ตัวแปรหรือตัวแปรแผนที่ * postforentity (url สตริง, คำขอวัตถุ, คลาส <t> responsetype, วัตถุ ... urivariables) * postforentity (url สตริง, คำขอวัตถุ, คลาส <t> การตอบสนอง, แผนที่ <สตริง,?> urivariables) * * ที่นี่ คือการพูดว่าใช้ตัวยึดตำแหน่งเพื่อส่งพารามิเตอร์ใน URL ที่ร้องขอโดยโพสต์และหากไม่มีตัวยึดตำแหน่งใน URL พารามิเตอร์ที่ผ่านการผ่านเหล่านี้จะไม่ถูกต้อง! * 2. หากวัตถุคำขอวัตถุในเมธอดมีประเภทเดียวกับพารามิเตอร์การรับของผู้ให้บริการผู้ให้บริการจะต้องใช้ @RequestBody เพื่อรับพารามิเตอร์เท่านั้น * 3. ถ้าใช้ทั้งสองสิ่งนี้น่าสนใจกว่า คุณต้องได้รับพารามิเตอร์ใน URI ผ่านคำอธิบายประกอบ @PathVariable และคุณยังต้อง @requestbody เพื่อรับวัตถุหรือขอให้รับพารามิเตอร์ตามฟิลด์! * 4. หากคุณรายงานข้อผิดพลาดโปรดดูที่สามรายการที่ฉันเขียนไว้ข้างต้นและให้ความสนใจกับการใช้พารามิเตอร์และคำอธิบายประกอบของผู้ให้บริการ */ @postmapping ("/ เอนทิตี") ผู้ใช้สาธารณะ postforentity () {ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ ("Hellxz1", "1", "678912345"); ResponseEntity <user> entity = restTemplate.postforentity ("http: // hello-service/user/{str}", user, user.class, "พารามิเตอร์ทดสอบ"); Body user = entity.getBody (); // ทั้งหมด resttemplate.*วิธีการของ ForEntity เป็นคลาส wrapper และร่างกายเป็นร่างกายประเภทการส่งคืนวัตถุกลับมา; }/*** พารามิเตอร์การส่งผ่านด้วย URI ผลการทดสอบจะแสดงในเทอร์มินัลของผู้ให้บริการ* ResponseEntity <t> postforentity (URI url, คำขอวัตถุ, คลาส <t> responsetype)*/@postmapping ("/entity/uri") ผู้ใช้สาธารณะ จาง "," 1 "," 678912345 "); // ที่นี่เราเพิ่งแปลง URL เป็น URI และไม่มีพารามิเตอร์เพิ่ม Uricomponents Uricomponents = UricomponentsBuilder.Fromuristring ("http: // hello-service/user") .build (). encode (); uri touri = uricomponents.touri (); // ใช้ผู้ใช้เพื่อผ่านวัตถุผู้ใช้พารามิเตอร์ = restTemplate.postForObject (touri, user, user.class); วัตถุกลับ; } /*** เมื่อทดสอบวิธีการ postforobject ที่นี่พารามิเตอร์ที่ต้องให้ความสนใจตามที่อธิบายไว้ในวิธีการข้างต้น ความแตกต่างคือคุณไม่ต้องการ getbody ดังนั้นฉันจะไม่อธิบายที่นี่ * postforobject (url string, คำขอวัตถุ, คลาส <t> responsetype, วัตถุ ... urivariables) * postforobject (url สตริง, คำขอวัตถุ, คลาส <t> การตอบสนอง, วัตถุ ... @PostMapping ("/object") ผู้ใช้สาธารณะ postforObject () {ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ ("Hellxz2", "1", "123654987"); // ที่นี่ URL ผ่าน 1 เพื่อโทรหาอินเทอร์เฟซในโครงการเซิร์ฟเวอร์ผู้ใช้ ResponseBody = RestTemplate.postForObject ("http: // hello-service/user/1", user, user.class); return responsebody; } /*** มีคำขอโพสต์อีกประเภทหนึ่ง: postforlocation นอกจากนี้ยังมีสามโอเวอร์โหลดที่นี่ นอกเหนือจากการไม่ระบุประเภทการส่งคืนการใช้งานเหมือนกันและประเภทการส่งคืนคือ URI ทั้งหมดดังนั้นฉันจะไม่อธิบาย * postforLocation (url สตริง, คำขอวัตถุ, วัตถุ ... urivariables) * postforlocation (url สตริง, วัตถุ, แผนที่ <string,?> urivariables) * postforlocation ผู้ใช้ใหม่ ("Hellxz3", "1", "987654321"); uri uri = resttemplate.postforlocation ("http: // hello-service/location", ผู้ใช้); // ฉันไม่รู้ว่าทำไมมันถึงว่างเปล่า วิธีนี้ใช้สำหรับการอ้างอิงเท่านั้น ถ้าฉันรู้ว่าสถานการณ์คืออะไรฉันจะกลับมาเปลี่ยน logger.info ("/ตำแหน่ง URI:"+uri); กลับ uri; -ใส่คำขอ && ลบคำขอ
คำขอวางนั้นง่ายกว่าวิธีการรับและโพสต์ ไม่จำเป็นต้องระบุประเภทการส่งคืนของคำขอใส่และแน่นอนว่าไม่มีค่าส่งคืน นอกจากนี้ยังมีการโอเวอร์โหลดสามประเภทซึ่งโดยทั่วไปเหมือนกับที่เขียนไว้ก่อนหน้านี้ ฉันไม่ต้องการพูดเพิ่มเติมที่นี่ ทั้งคำขอลบและคำขอวางไม่มีค่าส่งคืน ไม่สำคัญว่าคุณจะเขียนโดยเฉพาะที่นี่ วิธีการของคำขอทั้งสองนี้มีการระบุแยกต่างหาก รหัสถูกเขียนในชั้นเรียน
วิธีการขอวางมีดังนี้:
วิธีการขอลบมีดังนี้:
เพิ่ม PutandDeleTeRequestController ให้กับโครงการผู้ให้บริการรหัสมีดังนี้
แพ็คเกจ com.cnblogs.hellxz; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.web.bind.annotation. *;/** * @author: Hellxz * @description: ผู้ให้บริการ PutandDeleTeRequestController {Private Logger Logger = logger.getLogger (PutandDeleTeRequestController.class); @putMapping ("/put") โมฆะสาธารณะใส่ (@requestbody ผู้ใช้ผู้ใช้) {logger.info ("/put"+ผู้ใช้); } @DeleTemapping ("/ลบ/{id}") โมฆะสาธารณะลบ (@PathVariable Long ID) {logger.info ("/ลบ ID:"+id); -เพิ่ม PutandDeleTeRequestController ให้กับโครงการผู้ให้บริการรหัสมีดังนี้
แพ็คเกจ com.cnblogs.hellxz; นำเข้า org.apache.log4j.logger; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.web.bind.annotation*; @Description: ใส่คำขอลบคำขอพารามิเตอร์ที่โอเวอร์โหลดนั้นเหมือนกับการสาธิตข้างต้นและจะไม่ถูกระบุไว้ * @Date: 2018/4/19 13:43 */ @restControllerPublic คลาส PutrequestController @AutoWired RestTemplate RestTemplate; /*** ใส่ตัวอย่างคำขอโดยทั่วไปการร้องขอส่วนใหญ่จะใช้เป็นการปรับเปลี่ยน*/@putMapping ("/put") โมฆะสาธารณะใส่ (@requestbody ผู้ใช้ผู้ใช้) {resttemplate.put ("http: // hello-service/put", ผู้ใช้); }/*** ลบตัวอย่างคำขอ*/@deletemapping ("/del/{id}") โมฆะสาธารณะลบ (@PathVariable Long ID) {restTemplate.delete ("http: // hello-service/delete/{1}", id); -บทสรุป
โพสต์บล็อกนี้เขียนโดยใช้ Markdown ฉันไม่ทราบวิธีเพิ่มหมายเลขซีเรียลและฟังก์ชั่นพับรหัสไปยังบล็อกรหัสเป็นครั้งแรก นี่อาจไม่ใช่บทความที่ดี แต่ฉันเขียนโพสต์บล็อกนี้มาเกือบสองวันแล้ว หากคุณมีคำแนะนำที่ดีโปรดแสดงความคิดเห็นและแลกเปลี่ยน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น