مقدمة
في تصميم الخدمات الصغيرة ، تكون المكالمات بين الخدمات طبيعية. عادة ما نستخدم httpclient لتنفيذ المكالمات للموارد عن بُعد. تتطلب هذه الطريقة معرفة عنوان الخدمة وعنوان واجهة العمل وما إلى ذلك ، وتحتاج إلى الانتظار حتى يتم الانتهاء منه قبل أن تتمكن من الاتصال به. هذا ليس شيئًا جيدًا للتنمية المتكاملة. لديها اعتماد قوي بين الخدمات A و B. فكيف ننفصلها؟ الجواب هو إطار OpenFeign ، وهو جزء من SpringCloudy.
1 أضف مرجع حزمة
'org.springframework.cloud:Spring-cloud-starter-openfeign "،
ملاحظة: إذا لم تشر إلى إصدار SpringCloudy ، فهناك الكثير من الأشخاص ، فأنت بحاجة إلى إعلانه أولاً
DependencyManagement {perfors {mavenbom "org.springframework.cloud:Spring-cloud-dependencies: $ {springCloudversion}"}}2 تحديد التكوين المتعلق بالملف الشخصي
// تكوين مسارات الملف الافتراضية SourceSets {integtest {java.srcdir file ('src/test/java') file sresours.srcdir SourceSets.test.runtimeclasspath}3 حدد واجهة الخدمة وتحديد الطراز الزائف ، وهي الطريقة في الخدمة. تحتاج إلى معرفة معلمات الطريقة وقيمة الإرجاع الخاصة بها. لا داعي للقلق بشأن التنفيذ ، فقط تسخر من اختبار الوحدة.
package test.lind.javalindday.feignclientdemo ؛ استيراد org.springframework.cloud.openfeign.feignclient ؛ استيراد org.springframework.context.annotation.profile ؛ استيراد org.springframework.web.bind.annotation.getmapping ؛ */@profile ("! integtest")@feignclient (name = "servicename") الواجهة العامة mockclient {getMapping (path = "/balancesheet/{clientCode}") سلسلة balancesheet (سلسلة clientcode) ؛}4 دور الملف الشخصي
الملف الشخصي هو متغير البيئة. يمكنك تنشيطه من خلال ActiveProfile على الفصل. عند استخدامه ، كنت قد استخدمت التعليقات التوضيحية ملف التعريف. في الكود أعلاه ، لا يمكن استخدام كائن MockClient في بيئة Infegtest.
5 أضاف تطبيق وهمية ، يتم حقنه تلقائيًا ، لذا أعلن عن التعليق التوضيحي bean
package test.lind.javalindday ؛ استيراد org.mockito.argumentMatchers.AnyString ؛ استيراد org.mockito.mockito.mockito.mockito ؛ استيراد org.mockito.mockito.when org.springframework.context.annotation.configuration ؛ استيراد org.springframework.context.annotation.profile ؛ import test.lind.javalindday.feigndemo وهمية (mockclient.class) ؛ عندما (client.balanceshet (anystring ())) .Thenreturn ("OK") ؛ إرجاع العميل ؛ }}6 إضافة اختبارات الوحدة ، تأكد من تحديد متغيرات البيئة الخاصة بها في اختبارات الوحدة
package test.lind.javalindday ؛ استيراد org.junit.assert.assertequals ؛ استيراد org.junit.test ؛ استيراد org.junit.runner.runwith ؛ استيراد org.springframework.beans.factory.annotation.autowired ؛ org.springframework.test.context.activeprofiles ؛ استيراد org.springframework.test.context.junit4.springrunner class javalinddayapplicationTests {autowired mockclient mockclient ؛ test public void testMockClient () {assertequals (mockclient.balancesheet ("ok") ، "ok") ؛ }}بعد إجراء الاختبار ، سيتم حقن mockclient ، وسيستخدم فئة التنفيذ الوهمية ، لأن ملف تعريف فئة التنفيذ الوهمية فقط يشير إلى بيئة InfeGtest.
مع OpenFeign ، يمكن فصل مكالمات الخدمة إلى خدمة التطوير في المستقبل!
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.