مقدمة في SPRING BOOT
يعد Spring Boot إطارًا شائعًا جدًا مؤخرًا ، حيث تم تحسين إطار عمل على إطار الربيع. الغرض من هذا الإطار هو زيادة سرعة المطورين ، وتقليل صعوبة التكوين ، وما إلى ذلك ، مما يبسط بشكل كبير عملية التطوير. للحصول على تعليمات مفصلة ، يرجى الرجوع إلى الوثائق الرسمية. في العمل اليومي ، هناك فرص قليلة جدًا لبناء بيئة أو إطار عمل ، ويتم تطوير معظمها على أساس أصلي. لذلك ، عندما يُطلب منك بناء إطار بسيط ، ستنشأ صعوبات مختلفة. على سبيل المثال ، عندما كنت أقوم ببناء خادم ، قمت بإعداد عرض تجريبي صغير. اعتقدت أنها كانت بسيطة للغاية ، لكنني واجهت مشاكل مختلفة. لقد وجدت أن المدونات على الإنترنت كانت تتحدث عن بعض النقاط بطريقة مبعثرة ، وكان من الصعب إجراء عملية كاملة ، بما في ذلك المشكلات التي يمكن مواجهتها. فيما يلي ملخص مفصل لعملية بناء مشروع بسيط للرجوع إليه في المستقبل. في الوقت نفسه ، تعد هذه المدونة أيضًا تحضيرًا أساسيًا لبناء خادم الوكيل العكسي في المدونة التالية.
مزايتان من الربيع-بوت:
1. مفهوم "أولوية الاتفاقية على التكوين (COC)" استنادًا إلى إطار الربيع ومسار أفضل الممارسات.
2. بالنسبة لتطبيقات المؤسسات اليومية ، يقوم SPRING-Boot-Starter تلقائيًا بتكوين وحدة التبعية ، وهو "خارج الصندوق" (Starter-Boot-Boot-Starter-حيث يقع بادئة التسمية في Org.SpringFramenwork.boot Package).
في هذه المقالة ، سأستمر في تقديم تكوين ملف تكوين Springboot لأصدقائي. كيفية استخدام معلمات التكوين العالمية ، لذلك دعونا نبدأ مقدمةنا إلى اليوم.
نعلم أن SPRING BOOT يدعم التكوين التلقائي للحاويات ، والافتراضي هو TOMCAT ، بالطبع يمكننا أيضًا تعديله:
1. أولاً ، نستبعد تومكات في إبعاد النجوم الربيعة: استبعاد بداية Tomcat في ملف POM
<Rependency> <roupiD> org.springframework.boot </rougiD> <intifactid> Spring-Boot-Starter-Web </stifactid> <visplusions> <Section> <rougiD> org.springframework.boot </rougiD> </requortions> </premency>
2. أضف إلى حاوية الرصيف
<Rependency> <roupled> org.springframework.boot </rougiD> <StifactId> Spring-Boot-Starter-Jetty </stifactid> </sependency>
وبهذه الطريقة ، سيتم تعديل حاوية Springboot الخاصة بنا في حاوية رصيف.
لتسهيل تصحيح الأخطاء لدينا ، إليك أداة تصحيح أخطاء HTTP لك: Postman
دعنا نتحدث عن ملف التكوين العالمي لـ Springboot: application.properties
في التطوير ، يجب أن نواجه مثل هذا الشرط ، وهو تعديل منفذ الوصول إلى الحاويات. نظرًا لأن Springboot يقوم بتحميل الحاوية افتراضيًا ، يتم التحكم في إعدادات المنفذ بالطبع من خلال ملفات التكوين ، وهي مريحة تمامًا. نحتاج فقط إلى إضافته في ملف التكوين:
server.port = 6666
وبهذه الطريقة ، سيتم تعديل منفذ الحاويات الخاص بنا إلى 6666.
يمكننا أيضًا تعيين الاسم المستعار للوصول إلى المشروع من خلال ملفات التكوين:
server.context-path =/springboot
وبهذه الطريقة ، يمكننا بدء المشروع والوصول إلى مشروعنا من خلال http: // localhost: 6666/springboot1
ما سبق هو مجرد غيض من تكوين ملف تكوين الجليد من سبرينغ بوت. على سبيل المثال ، يمكننا أيضًا إعداد تكوين اتصال قاعدة البيانات ، وإعداد تكوين بيئة التطوير ، ونشر تكوين البيئة ، وتحقيق تبديل سلس بين الاثنين.
دعنا نتعرف على استخدام وحدة تحكم Springboot. يوفر لنا Springboot ثلاثة تعليقات توضيحية:
في المقالة السابقة ، استخدمنا RestController. لنحاول استخدام Controller معًا:
controller // @reviewbodypublic class requestTest {/*** لا توجد قيود على طريقة الطلب* return*/ @requestmapping (value = "/req") السلسلة العامة req () {return "success" ؛ }}عندما ندخل http: // localhost: 8080/springboot1/req للدخول في المتصفح ، نجد 404
{"Timestamp": 1515332935215 ، "الحالة": 404 ، "خطأ": "لا توجد رسالة متاحة" ، "PATH": "/SpringBoot1/Req"}لماذا هذا؟ هذا لأنه يجب استخدام Controller مع القالب ، لذلك نفتح ملف Maven POM ونضيف قالب Springboot:
<!-قالب Springboot-> <reperency> <roupiD> org.springframework.boot </groupId> <shintifactid> spring-boot-starter-thymelef </stifactid> </redenced>
ثم ابحث عن قوالب في دليل الموارد لمشروعنا (إن لم يكن ، قم بإنشاء واحد جديد ، ولكن تأكد من ملاحظة أن اسم المجلد يجب أن يكون ثابتًا) ، ثم قم بإنشاء نجاح. html حتى نبدأ المشروع مرة أخرى والوصول إلى العنوان الآن ، هل هو جيد؟
ومع ذلك ، تجدر الإشارة هنا إلى أن التطوير الحالي على مستوى المؤسسة يتم فصله عن النهايات الأمامية والخلفية. عندما نقوم بالخدمات الخلفية ، نحتاج فقط إلى إرجاع البيانات المقابلة. بالطبع ، هناك عيب آخر لاستخدام القوالب ، أي أن الأداء سيؤدي إلى خسائر معينة ، حتى يتمكن الجميع من فهمها باختصار هنا.
كما هو مذكور في المقدمة أعلاه ، فإن @Controller+ @reponseBody يعادل RestController ، لذلك يوصى باستخدام RestController هنا.
دعنا نقدم @requestmapping (value = "/req"). أعتقد أن كل شخص يعرف بالفعل استخدامه. بالطبع ، لا يمكن استخدام هذا التعليق التوضيحي في الأساليب فحسب ، بل ينطبق أيضًا على الفصول.
RestController //@controller //@reponseBody@requestMapping (value = "/test") requesttest requesttest {/*** لا توجد قيود على طريقة الطلب* regurn*/@requestmapping (value = "/req") سلسلة عامة req () {return "success" ؛ }/** * طريقة الطلب المقيدة هي الحصول على * regurn */ @requestmapping (value = "/req1" ، method = requestMethod.get) public req1 () {return "success" ؛ }/** * طريقة طلب التقييد هي post * return */ @requestmapping (value = "/req2" ، method = requestMethod.post) السلسلة العامة req2 () {return "success" ؛ }}أعتقد أنه عندما ترى هذه الطريقة ، يجب أن تعرف بالفعل فائدتها. إنه نوع وصول محدد ، ويمكن الوصول إليه بأي طريقة دون تعيين الافتراضي. لا أعرف ما إذا كنت أعتقد أنه إذا تم تعيين الطريقة في فئة requestmapping ، فسيتم مورث الطريقة في الفصل افتراضيًا. بالطبع ، يمكنك أيضًا تعيينها بشكل منفصل على الطريقة. يرجى تجربة قضية الأولوية بنفسك.
أدناه سأقدم لك كيفية الوصول إلى الثوابت في ملفات التكوين في وحدة التحكم. أولاً نضيف ملف التكوين:
name = hpugsage = 35Content = name: $ {name} ؛ Age: $ {Age}نستخدم الثوابت في ملفات التكوين ، والتي تستخدمها $ {}.
أدناه نضخ المعلمات في وحدة التحكم:
// حقن المعلمات في ملف التكوين Value ("$ {name}") اسم السلسلة الخاصة ؛ Value ("$ {Age}") عصر عدد صحيح خاص ؛ Value ("$ {content}") محتوى السلسلة الخاصة ؛ requestmapping (value = "/req3" ، method = requestMethod.get) السلسلة العامة req3 () {return "name =" + name ؛ } @requestmapping (value = "/req4" ، method = requestMethod.get) السلسلة العامة req4 () {return "age =" + age ؛ } @requestmapping (value = "/req5" ، method = requestMethod.get) السلسلة العامة req5 () {return "content =" + content ؛ }ابدأ مشروعنا وحاول زيارته.
إذا كنت تشعر بعدم الرضا عن هذا الاستخدام ، فإليك خدعة أخرى: نستخدم ملفات تكوين الفصل الدراسي ونستخدم الفئات لاستخدام المعلمات. إنه أكثر ملاءمة من حقن معلمة واحدة. أولاً ، قم بإنشاء فئة Java
@component@configurationProperties (prefix = "userinfo") فئة عامة userInfo {private string names ؛ عصر عدد صحيح خاص ؛ محتوى سلسلة خاصة ؛ عدد صحيح عام getage () {عودة العائد ؛ } السلسلة العامة getNames () {return names ؛ } public void setNames (أسماء السلسلة) {this.names = names ؛ } public void setage (integer age) {this.age = age ؛ } السلسلة العامة getContent () {return content ؛ } public void setContent (string content) {this.content = content ؛ }}ثم قم بتعيين المعلمات في ملف التكوين الخاص بنا:
userInfo.names = Little Broken Child userinfo.age = 25UserInfo.content = name: $ {userinfo.names} ؛ Age: $ {userInfo.age}الأسلاك لجعل وحدة التحكم لدينا:
// حقن ObjectAudeired userInfo userInfo ؛ requestmapping (value = "/req6" ، method = requestMethod.get ، تنتج = "text/plain ؛ charset = utf-8") السلسلة العامة req6 () {return "name =" + userInfo.getNames () ؛ } @requestmapping (value = "/req7" ، method = requestMethod.get) السلسلة العامة req7 () {return "Age =" + userInfo.getage () ؛ } @requestmapping (value = "/req7" ، method = requestMethod.get) السلسلة العامة req7 () {return "Age =" + userInfo.getage () ؛ } @requestmapping (value = "/req8" ، method = requestMethod.get) السلسلة العامة req8 () {return "content =" + userinfo.getContent () ؛ }حسنًا ، حاول إعادة تشغيل زيارة مشروعنا.
أيها الأصدقاء ، ألا تعرف ما إذا كنت تواجه هذه المشكلة؟ هناك رمز صيني مشوه. بادئ ذي بدء ، لا تقلق. دعونا نلقي نظرة على ملف تكوين Springboot آخر: application.yml. يستبدل ملف التكوين هذا "؛" بواسطة مساحات NewLine. لنلقي نظرة على كيفية تكوين نفس التكوين تحت YML:
الخادم: المنفذ: 8888 مسار السياق: /springboot1name: hpugsage: 35-content: الاسم: $ {name} ؛ العمر: $ {Age} userInfo: الأسماء: Little Kid العمر: 25 المحتوى: الاسم: $ {userInfo.names} ؛ العمر: $ {userinfo.age}الآن دعنا نبدأ المشروع ونجربه.
العودة إلى السؤال المشوه أعلاه ، ألا يوجد مشوه عندما نستخدم YML؟ هل أنت مكتئب قليلا؟ لماذا هذا؟ وذلك لأن ملف .properties يستخدم نموذج ترميز Unicode ، لذلك سوف يظهر الرمز المشتعلة عندما ندخل الصينية. بالطبع ، هناك سبب آخر للرمز المشهور ، أي إعدادات الترميز التي يمكن أن أكون غير متناسقة مع الواجهة الأمامية. نضيف هذا إلى ملف التكوين:
الربيع: HTTP: الترميز: القوة: True Charset: UTF-8 ممكّن: Trueserver: Tomcat: uri-Encoding: UTF-8
للسيطرة. فيما يلي بعض نصائح التطوير. يوفر لنا Springboot حلولًا لملفات التكوين المختلفة في بيئات تطوير مختلفة:
#YML Format Spring: ملفات التعريف: نشطة: Prod#.
لخص
ما سبق هو البرنامج التعليمي حول استخدام ملف تكوين Web-boot-boot-boot الذي قدمه لك المحرر حول المزالق التي واجهتها في تطوير الحذاء الربيعي. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!