يمكن أن يساعدنا SPRING BOOT ، كمنتج لأفضل الممارسات في إطار الربيع لمفهوم "الاتفاقية على التكوين" ، على إنشاء تطبيقات مستقلة على مستوى المنتجات على مستوى المنتج. تتطلب معظم تطبيقات التمهيد الربيع تكوينًا قليلًا جدًا لتشغيله بسرعة. إنه عمل صغرى يتوافق تمامًا مع الخدمات المجهرية.
1. حزمة تطبيق التمهيد الربيع
يمكن كتابة تطبيق SPRING BOOT في حزمة جرة ، مع تضمين TOMCAT ، بحيث يمكن أن تبدأ مباشرة. ومع ذلك ، قبل بدء تطبيق Boot Spring ، تكون التغليف ضرورية أولاً. يتحدث هذا المقال عن تعبئة مشروع Maven. المتطلبات الأساسية المطلوبة للتغليف (المحتوى في ملف pom.xml) هي:
... <لتغليف> جرة </packaging> ... <reperency> <roupiD> org.springframework.boot </groupId> <StifactId> spring-boot-starter-web </stifactid> </predency> ... <StifactId> Spring-Boot-Maven-Plugin </stifactid> <simpuration> <mainclass> com. ***
أمر الحزمة هو:
MVN Clean Package -dmaven.test.skip = True# Demo $ MVN Clean Package -Dmaven.test.skip = true [Info] org.springframework.boot: spring-boot-maven-plugin مفقود. @ السطر 38 ، العمود 17 [تحذير] [تحذير] يوصى بشدة بإصلاح هذه المشكلات لأنها تهدد ثبات المبنى الخاص بك. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.0.1-snapshot [info] -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- في الواقع) لنسخ الموارد المصفاة ، أي أن الإنشاء يعتمد على النظام الأساسي! /المستخدمين/LTC/Spring Boot Demo/Target/Classes [info] [info] --- Maven-Resources-Plugin: 2.6: TestResources (testresources) @ myproject --- المصادر [info] [info] --- maven-surefire-plugin: 2.12.4: اختبار (اختبار افتراضي) @ myProject --- [معلومات] يتم تخطي الاختبارات. [info] Demo/Target/myProject-0.0.1-snapshot.jar [info] [info] --- Spring-boot-maven-plugin: 1.5.0.rc1: repackage (افتراضي) @ myproject --- [info] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
أو تشغيل التشغيل -> Maven Build ... في Eclipse ، املأ حزمة نظيفة -dmaven.test.skip = صحيح في الأهداف ، تشغيل ، الحزمة.
2. بدء تشغيل تطبيق التمهيد الربيع
أمر البدء في SPRING BOOT هو:
java -jar application.jar# demo $ java -jar target/myproject -0.0.1 -snapshot.jar. ____ __ _ /// ___'_ __ _ _ (_) _ __ __ __ _ / / / / (() / ___ | '_ |' _ | / / `| .__ | | _ | | _ | | ============================================== ___/=/_/_/:: Spring Boot :: (/المستخدمين/LTC/Spring Boot Demo/Target/MyProject-0.0.1-snapshot.jar بدأها Liutianchi في/المستخدمين/LTC/Spring Boot Demo) 2017-01-13 15: 31: 36.916 info 62119 --- 15: 31: 36.981 info 62119 --- [Main] ationConfiGembedDedWebPlicationContext: urg.springframework.boot.context.embedded.annotationConfiGeddedDeBplicationContext@b1a58a3: STARTRAP DIATION 13 JANY 13 15:31 جذر التسلسل الهرمي للسياق 2017-01-13 15: 31: 38.602 معلومات 62119 --- [MAIN] SBCETTOMCATEMBEDDEDServletContainer: Tomcat تهيئة مع المنفذ (S): 8080 (HTTP) 2017-01-13 15: 38.615 INEF 62119 --- [MAIN] O.Apache.catalina.core.standardservice: بدء الخدمة TOMCAT2017-01-13 15: 31: 38.616 INFO 62119 --- [MAIN] ORG.APACHE.CATALINA.CRORE.CROED.STANDANDENGINE: بدء تشغيل Servlet: APACHE TOMCAT/8.5.62017-01-13 15: 38.718 info [OST-STARTSTOP-1] OCCC [TOMCAT]. [LOCALHOST]. 15: 31: 38.718 Info 62119 --- [OST-STARTSTOP-1] OSWEB.CONTEXT.CONTEXTLOADER: ROOT WEBAPPLICATIONCETS: ACTIONICISIONINGENGINGENTICALISTIONINGE "Dispatcherservlet" إلى [/] 2017-01-13 15: 31: 38.932 INFO 62119 --- [OST-STARTSTOP-1] OSBWServlet.FilterRegistrationBean: تصفية رسم الخرائط: OsbwServlet.FilterRegistrationBean: مرشح رسم الخرائط: 'directionencodingfilter' to: [/*] 2017-01-13 15: 31: 38.932 info 62119 --- 15: 31: 38.932 INFO 62119 --- [OST-STARTSTOP-1] OSBWServlet.FilterRegistrationBean: Mapping Filter: 'Hiddenhttpmethodfilter' to: [/*] 2017-01-13 15: 31: 38.932 info 62119 --- مرشح: 'httpputformContentFilter' إلى: [/*] 2017-01-13 15: 31: 38.932 info 62119 --- [OST-STARTSTOP-1] OSBWServlet.FilterRegistrationBean: تصفية رسم الخرائط: [/*] 2017-01-13 15: 31: 39.217 info 62119 --- [MAIN] 15:31:36 CST 2017] ؛ جذر السياق الهرمي Hierarchy2017-01-13 15: 31: 39.310 INFO 62119 --- [MAIN] : تم تعيين "{[/error]}" على org.springframework.http.sponseentity <java.util.map <java.lang.string ، java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httpservletrequest) 2017-01-13 15: 39.313 info "} org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpservletrequest ، javax.servlet.http.httpservlesponse) 2017-01-13 15: 39.338 info Oswshandler.simpleurlhandlermapping: تم تعيين url path [/webjars/**] على معالج من النوع [class org.springframework.web.servlet.resource.resourcehtttprequesthandler] 2017-01-13 15: 39.338 info 62119 --- path [/**] على معالج النوع [class org.springframework.web.servlet.resource.resourcehttprequestHandler] 2017-01-13 15: 39.378 info 62119 --- org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.665 info 62119 --- "} 15: 31: 39.665 info 62119 --- [main] osbaemvc.endpointhandlermapping: medped "{[/manage/metrics || /manage/metrics.json. org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.666 info 62119 --- /manage/mappings.json: methods= budapget/20uces= budapplication/json]} "على java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 39.677 info Osbaemvc.endPoinThandLermapping: تم تعيين "{/manage/trace ||/manage/trace.json .methods= budapget. org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.667 info 62119 --- /manage/info.json: methods= budapget/20uduces= budapplication/json]} "على java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 39.668 info Osbaemvc.endPoinThandLermapping: تم تعيين "{/manage/configprops || /manage/configprops.json. org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.669 info 62119 --- /manage/Heapdump.json: methods= budapget. org.springframework.boot.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (Boolean ، Javax.servlet.http.httpservletrequest ، javax.servlet.http.htttpletresponse) trows java.io.ioException ، javax.servlet.servlet.servletexception2017-01-13 15: 31: 39.669 info 62119 --- /manage/autoconfig.json: methods= budapget/produces= budapplication/json]}} osbaemvc.endpointhandlermapping: تم تعيين "{[/manage/env/ {name: org.springframework.boot.actuate.endpoint.mvc.environmentMvCendPoint.value (java.lang.string) 2017-01-13 15: 31: 39.673 info 62119 --- /manage/env.json: methods= budapget/20sproduces= budapplication/json]} "على java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 39.674 info Osbaemvc.endpointhandlermapping: تم تعيين "{/manage/health ||/manage/health.json. org.springframework.boot.actuate.endpoint.mvc.HealthMvCendPoint.invoke (java.security.principal) 2017-01-13 15: 31: 39.675 info 62119 --- /manage/dump.json: methods= budapget/20uduces= budapplication/json]} "على java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 39.677 info Osbaemvc.endpoInthandLermapping: medped "{[/manage/leptdown || /manage/shutdown.json .methods= budapost]}" على java.lang.Object org.springframework.boot.actuerpoint.endpoint.mvc.shutdown 62119 --- [main] Osbaemvc.endpointhandlermapping: تم تعيين "{[/manage/beans || /manage/beans.json/methods= budapget. org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.799 info 62119 --- oscsupport.defaultlifecycleprocessor: بدء الفاصوليا في المرحلة 02017-01-13 15: 31: 39.944 info 62119 --- [Main] SbcettomCatembeddedServletContainer: elecat on port (s): 8080 (http) 2017-01-13 com.test.example: بدأ مثال في 4.292 ثانية (JVM يعمل لمدة 4.726) 3. يغلق تطبيق Boot Spring
هناك طريقتان رئيسيتان لإغلاق صندوق الربيع: إرسال إشارات الإغلاق عبر HTTP ، أو باستخدام Service Stop.
المتطلب السابق لإغلاق تطبيق SPRING BOOT هو أن pom.xml يضيف المحتوى التالي:
<Rependency> <roupiD> org.springframework.boot </rougiD> <intifactid> spring-boot-starter-actuator </shintifactid> </sependency>
تمت إضافة في التطبيق.
#enable sthowddownendpoints.shutdown.endabled = True#تعطيل كلمة مرور التحقق من نقاط النهاية
الأمر الختامي هو:
Curl -X Post Host: Port/Shutdown# Demo $ Curl -X Post http: // localhost: 8080/staken {"message":إذا كنت ترغب في تكوين المسار ، فأنت بحاجة إلى إضافة management.context -path =/إدارة في التطبيق.
4. التحقق الأمني
إذا كان التحقق من الأمان مطلوبًا عند الإغلاق ، فأضف في ملف pom.xml:
<Rependency> <roupiD> org.springframework.boot </rougiD> <StifactId> Spring-Boot-Starter-Security </stifactid> </perendency>
تمت إضافة في التطبيق.
#enable leaddown security in endpoints.shutdown.sevinitive = true#تحقق من اسم المستخدم الأمان. user.name = admin#تحقق من أمان كلمة المرور
الأمر الختامي هو:
Curl -U admin: admin -x post http://127.0.0.1:8081/manage/shutdown# demo $ curl -u admin: admin -x post http://127.0.0.1:8081/manage/shutdown {ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.