นักเรียนที่ไม่ชัดเจนเกี่ยวกับ OpenFeign สามารถอ้างถึงบทความของฉัน: Springboot ~ OpenFeign กล่าวคำอำลากับ httpClient นับจากนี้
สำหรับ OpenFeign ช่วยให้เราแก้ปัญหาเซิร์ฟเวอร์การโทรเซิร์ฟเวอร์ คุณไม่จำเป็นต้องใส่ใจเกี่ยวกับ URI ของเซิร์ฟเวอร์คุณเพียงแค่ต้องรู้ชื่อบริการในยูเรก้า ในเวลาเดียวกันหลังจากที่คุณกำหนดพารามิเตอร์และค่าส่งคืนของวิธีการบริการด้วยเซิร์ฟเวอร์เราสามารถเยาะเย้ยวิธีเซิร์ฟเวอร์เหล่านี้ในระหว่างการทดสอบหน่วยและบรรลุการทดสอบหน่วยอย่างแท้จริงโดยไม่ต้องโต้ตอบกับทรัพยากรภายนอก
วันนี้เราจะพูดคุยเกี่ยวกับปัญหาการอ่านไฟล์ JSON ใน OpenFeign เป็นหลัก เราจัดเก็บข้อมูลที่จำเป็นสำหรับการทดสอบในไฟล์และโฟกัสค่อนข้างง่ายเมื่อแก้ไข
JSON Help Class ส่วนใหญ่ใช้ ObjectMapper Object
/*** แปลง JSON เป็นวัตถุ * * @param พา ธ พา ธ พา ธ */ สาธารณะ <t> t fromjson (พา ธ สตริง, คลาส <t> cls) {ลอง {return objectmapper.readValue (this.fromResource (พา ธ , charsets.utf_8), cls); } catch (exception e) {โยน unlueLstateException ใหม่ ("อ่าน JSON ล้มเหลว:" + PATH, E); }} /*** แปลงอาร์เรย์ JSON เป็นรายการวัตถุ * * @param พา ธ พา ธ พา ธ */ สาธารณะ <t> รายการ <t> listfromjson (เส้นทางสตริง, typereference typereference) {ลอง {return objectMapper.readValue (fromResource (พา ธ , charsets.utf_8), typereference); } catch (exception e) {โยน unlueLstateException ใหม่ ("อ่าน JSON ล้มเหลว:" + PATH, E); -ในประเภทจำลองคุณสามารถใช้วิธีนี้เพื่ออ่านเนื้อหาของไฟล์ JSON
@configuration @profile ("integtest") คลาสสาธารณะ serviceClientmock {@bean สาธารณะ serviceClient registerServiceClient () {client accountClient = mock (accountClient.class); เมื่อ (client.del (anystring (), anystring (), anystring (), anymap ())). thenreturn (fromjson ("order/order.json", map.class)); -รหัสข้างต้นส่วนใหญ่จำลองวิธี DEL ในวัตถุ ServiceClient มันมีพารามิเตอร์อินพุตอักขระสามตัวและค่าส่งคืนจะถูกอ่านจากไฟล์ JSON ในการทดสอบหน่วยวัตถุ ServiceClientMock จะถูกฉีดโดยตรง
อย่างที่คุณเห็นจากคำอธิบายประกอบ @profile มันทำงานในสภาพแวดล้อมแบบอินเทอร์เทสต์และในสภาพแวดล้อมการผลิตมันจะใช้บริการจริง
สรุป
ด้านบนเป็นข้อมูลการอ่าน Springboot Openfeign จากไฟล์ JSON ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!