Spring Boot는 "구성에 대한 규칙"개념에 대한 Spring Framework 모범 사례의 제품으로서 독립적 인 제품 수준의 스프링 프레임 워크 기반 애플리케이션을 신속하게 만들 수 있습니다. 대부분의 Spring Boot 응용 프로그램은 빠르게 실행하는 데 거의 구성이 필요하지 않습니다. 마이크로 서비스와 상당히 일치하는 마이크로 프레임 워크입니다.
1. 스프링 부트 응용 프로그램 패키지
Spring Boot 응용 프로그램은 Jar 패키지에 입력 할 수 있으며 Tomcat이 포함되어 있으므로 직접 시작할 수 있습니다. 그러나 Spring Boot 응용 프로그램이 시작되기 전에 포장이 먼저 필요합니다. 이 기사는 Maven 프로젝트 포장에 대해 이야기합니다. 포장에 필요한 전제 조건 (pom.xml 파일의 내용)은 다음과 같습니다.
... <packaging> jar </packaging> ... <pectionency> <groupId> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-web </artifactid> </feendency> ... <ludin> <grugins> <groupid> org.springframework.boot </groupId> spring-hoot-maven-potid> <configuration> <mainclass> com. ***. 응용 프로그램 </mainclass> </configuration> <executions> <executions> <executions> <Goal> <Goal> Repackage </Goal> </Goals> </execution> </execution> </plugin> </plugins> </build> ...
패키지 명령은 다음과 같습니다.
mvn clean package -dmaven.test.skip = true# demo $ mvn clean package -dmaven.test.skip = true] 프로젝트 스캔 ... [경고] [경고] com.examply : jar : 0.0.1 -snapshot [build.plugins.plugin 'for for for for for for offin. org.springframework.boot : Spring-Boot-Maven-Plugin이 누락되었습니다. @ 38 열 17 열 [경고] [경고] 건물의 안정성을 위협하기 때문에 이러한 문제를 해결하는 것이 좋습니다. [경고] [경고] 이러한 이유로 향후 Maven 버전은 더 이상 그러한 기형 프로젝트 구축을 지원하지 않을 수 있습니다. [경고] [정보] [정보]. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.0.1-SNAPSHOT [정보] -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 실제로 필터링 된 리소스를 복사하기 위해, IE 빌드는 플랫폼 의존적입니다! [정보] 1 개의 리소스 [info] [info] --- 3.1 : maven-compiler-plugin : 3.1 : compile (default-compile) @ myProject --- [info] 변경 -10 인코딩을 다시 컴파일하지 않았으며, [inforcon explicing infaint in infoction, ie flatform is flatform is flatform is platform is platform is platform are is setted 님. /users/ltc/spring boot demo/target/classs [info] [info] --- maven-resources-plugin : 2.6 : testResources (default-testresources) @ myProject --- [info] 테스트 자료를 복사하지 않음 [info] [info] --- maven-compiler-plugin : 3.1 : myproje) @ myproject. 소스 [정보] [정보] --- Maven-Surefire-Plugin : 2.12.4 : 테스트 (기본 테스트) @ MyProject --- [Info] 테스트가 건너 뜁니다. [Info] [Info] --- Maven-Jar-Plugin : 2.4 : Jar (기본-자르) @ MyProject --- [info] jar/ltc/spring boot 빌드 데모/target/myProject-0.0.1-snapshot.jar [info] [info] --- Spring-Boot-Maven-Plugin : 1.5.0.rc1 : Repackage (default) @ myProject --- [Info] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
또는 실행 -> Maven 빌드 ... Eclipse에서 깨끗한 패키지를 채우십시오 -dmaven.test.skip = 목표, 실행, 패키지가 완료됩니다.
2. 스프링 부트 응용 프로그램 시작
Spring Boot의 시작 명령은 다음과 같습니다.
java -jar application.jar# demo $ java -jar target/myproject -0.0.1-snapshot.jar. ____ __ _ /// ___'_ __ _ _ _ _ (_) _ __ __ __ _ / / (() / ___ | ___ | .__ | | _ | | _ | | =============================================== ___/=/_/_/:: 봄 부트 :: (v1.4.3.3.3.3.3111111-13 15 : 31 : 36.911 정보 62119 ---- [Main] Com.test.Test.Test. (/users/ltc/spring boot demo/target/myproject-0.0.0.1-snapshot.jar liutianchi에서/users/ltc/spring boot demo에서 시작) 2017-01-13 15 : 31 : 36.916 Info 62119 --- [main] com.test.ceamply : lefault2017-01-13으로 떨어지지 않습니다. 15 : 31 : 36.981 정보 62119 --- [Main] AtionConconfigemeddedWebApplicationContext : 새로 고침 org.springframework.boot.context.embedded.annotationconfigemeddedwebapplicationcontext@b1a58a3 : 시작 날짜 [FRI 13 15:31:36 CST 2017]; 컨텍스트의 루트 Hierarchy2017-01-13 15 : 31 : 38.602 Info 62119 --- [Main] SBCETTOMCATEMBEDDEDSERVLETCONTAINER : TOMCAT는 포트 (S)로 초기화 된 TomCat : 8080 (HTTP) 2017-01-13 15 : 31 : 38.619-- [Main] O.A.PATERINA. : 서비스 시작 Tomcat2017-01-13 15 : 31 : 38.616 정보 62119 --- [main] org.apache.catalina.core.core.StandardEngine : STARTE SERT SERVET ENGINE : APACHE TOMCAT/8.5.62017-01-13 15 : 31 : 38.718 정보 62119 --- [OST-StartSTOP-1]. : 스프링 임베디드 웹 애플리케이션 콘텍스트 2017-01-13 15 : 31 : 38.718 정보 62119 --- [Ost-StartStop-1] Occc [Tomcat]. [LocalHost]. osweb.context.ContextLoader : Root WebApplicationContext: initialization completed in 1740 ms2017-01-13 15:31:38.927 INFO 62119 --- [ost-startStop-1] osbwservlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]2017-01-13 15:31:38.932 INFO 62119 --- [Ost-StartStop-1] OSBWSERVLET.FILTERREGISTERTATEBEN : 매핑 필터 : 'MetricsFilter'to : [/*] 2017-01-13 15 : 31 : 38.932 정보 62119 --- [Ost-StartStop-1] OSBWSERVLET.FILTERREGISTRATION : 'FARCATIONEMEDOUDEREGRATION :'at ampateDeOdfileDTERREGISTRATION : [/*] 2017-01-13 15 : 31 : 38.932 정보 62119 --- [OST-StartStop-1] OSBWSERVLET.FILTERREGISTERTATION : 매핑 필터 : 'HIDDENHTTPMETHODFILTER'TO : [/*] 2017-01-13 15 : 31 : 38.932 Into 62119------------- osbwservlet.filterregistrationbean : 매핑 필터 : 'hiddenhttpmethodfilter'to : [/*] 2017-01-13 15 : 31 : 38.932 Info 62119 --- [Ost-StartStop-1] OSBWServlet.filterregistrationBean : 맵핑 필터 : 'Htttputputtfilter'on the [/!! OSBWSERVLET.FILTERREGISTRATIONBEAN : 매핑 필터 : 'WebRequestLoggingFilter'to : [/*] 2017-01-13 15 : 31 : 38.932 Info 62119 --- [OST-StartStop-1] OsBwServlet.filterregistrationBean : Mapping Filter 'to :/*] 3. 15 : 39 : 39.217 정보 62119 --- [Main] SWSMMAREQUESTMAPPINGHANDLERADAPTER : @ControllEradVice를 찾고 있습니다. 컨텍스트의 루트 Hierarchy2017-01-13 15 : 31 : 39.310 정보 62119 --- [main] swsmmarequestmappinghandlermping : "{[/]}" "java.lang.string com.test.example.home () 2017-01-13 15 : 31 : 39.313 정보 62119-------------------------- : 공개 org.springframework.http.responsentity <java.util.map <java.lang.string, java.lang.object >>에 "{[/error]}"를 매핑했습니다 org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httpservletrequest) 2017-01-13 15 : 31 : 39.313 Info 62119 --- [main] swsmmarequestmappinghandlermpamping : 매핑 "{[/error], public org.springframework.web.servlet.modelandview에 = [text/html]}"를 생성합니다 org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpservletrequest, javax.servlet.http.httpervletresponse) 2017-01-13 15 : 3138 info 62119---- OSWSHANDLER.SIMPLEURLHANDLERMPAPP : MAPPED URL 경로 [/webjars/**] 유형의 처리기 [class org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15 : 39.338 Info 62119--- [Main] OswshOndler.simplepleller.simplepller.Simplepller. URL 경로 [/**] 유형의 핸들러에 대한 [/**] [클래스 org.springframework.servlet.resource.resourcehttprequesthandler] 2017-01-13 15 : 31 : 39.378 정보 62119 --- [Main] OswShandler.simpleurlhandlermping : mapplesp [/simpleurlhandlermapping : on on one on one on one on wont on on one on on on on on on on on on on on on worlder [main] oswshandler.simpleurlhandlermapping : org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15 : 31 : 39.665 정보 62119 --- [main] osbaemvc.endpointhandlermping : 매핑 "{[/manage/metrics/ {name:.*}}], methods= [get], produceS=] on public java.lang.object org.spramframewort.actuate.endpoint.mvc.metricsmvcendpoint.value (java.lang.string) 2017-013 15 : 31 : 31 : 31 : 31 : 31 : 31 62119 --- [Main] OSBAEMVC.ENDPOINTHANDLERMPAPP : MAPPED "{[/관리/메트릭 || /manage/metrics.json] java.lang.object에"rectuces= [application/json]} " org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31 : 39.666 정보 62119 --- [main] osbaemvc.endPoinThandLermping : 매핑 "{[/manage/mappings || /manage/mappings.json], methods= [get]은 public java.lang.object org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invcake () 2017-01-13 15 : 31 : 39.667 Info 62119-------------- osbaemvc.endpointhandlermpapping : 매핑 "{[/manage/trace ||/manage/trace.json] get] the public java.lang.object org.springframework.act.endpoint.mvc.endpoint-3-0-0-0-0-1-13-13-0- 15 : 31 : 39.667 정보 62119 --- [Main] OSBAEMVC.ENDPOINTHANDLERMPAPP : MAPPED "{[/관리/정보 ||/manage/Info.json]], Methods= [GetGom]}"application/json]} "on Public java.lang.object org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31 : 39.668 정보 62119 --- [main] osbaemvc.endPoinThandLermping : 매핑 "{[/manage/configprops || /manage/configprops.json] theMethods= [get]은 produces=] java.lang.object org.sprameframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31.669 Info 62119 ---------- OSBAEMVC.ENDPOINTHANDLERMPAPP : MAPPED "{[/MANAGE/HEAPDUMP ||/MANAGE/HEAPDUMP.JSON], METHODS= [GET ],PRODUCES= [APPLICATION/OCTET-Stream]}" "공개 void org.springframework.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (boolean, javax.servlet.http.httpservletrequest, javax.servlet.http.httpervletresponse) wrows java.io.ioexception, javax.servlet.servlet.servletexception2017-01-13 15 : 39.669 정보 62119 --- [main] osbaemvc.endpointhandlermpapp : 매핑 "{[/manage/autoconfig || /manage/autoconfig.json] theMethods= [get]은 produces=] java.lang.object org.spramframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 39.673 info 62119---------- osbaemvc.endpointhandlermping : mapped "{[/manage/env/ {name:.*}} java.lang.object에 대한 produces=] application/json]}" org.springframework.actuate.endpoint.mvc.environmentmvcendpoint.value (java.lang.string) 2017-01-13 15 : 31 : 39.673 정보 62119 --- [Main] OSBAEMVC.ENDPOONTHLEMPAPP : MAPPED "{/manage/ENV || /manage/env.json], methods= [get]은 public java.lang.object org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31 : 39.674 Info 62119-------------- OSBAEMVC.ENDPOINTHANDLERMPAPP : MAPPED "{[/관리/건강 ||/manage/Health.json]은 public java.lang.object org.springframework.actuate.endpoint.mvc.healthmvcendpoint.invoke (java.security.security .security. 15 : 31 : 39.675 정보 62119 --- [Main] OSBAEMVC.ENDPOINTHANDLERMAPP : MAPPED "{[/관리/덤프 ||/덤프 ||/manage/dump.json]}, produces= [application/json]}"public java.lang.object org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31 : 39.677 정보 62119 --- [main] osbaemvc.endPoinThandLermping : 매핑 "{[/manage/shutdown |/manage/shutdown.json insson insson insson insonem. java.lang.object org.springframework.actuate.actuate.endpoint.mvc.shutdownmvcendpoint.invoke () 2017-01-13 15 : 31 : 39.678 정보 62119 --- [메인] OSBAEMVC.ENDPOONTHLEMPAPP : MAPPED "{/manage/beans || || /manage/beans.json], methods= [get]은 public java.lang.object org.springframework.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 : 31 : 39.799 Info 62119------------- osjeaannotationmbeanexporter : startup2017-01-13 15 : 31 : 39.809 정보 62119 --- [main] oscsupport.defaultlifecycleprocessor : phase 02017-01-13 15 : 31 : 39.944 Info 62119-- [메인] SBCETTOMCATEMBEDDEDSERVLETCONTAINER : TOMCAT는 항구에서 시작되었습니다 : 8080 (HTTP) 2017-01-13 15 : 31 : 39.949 정보 62119 --- [main] com.test.example : 4.292 초의 예제 (4.726에서 실행되는 JVM). 3. Spring Boot 앱이 닫힙니다
Spring Boot를 닫는 두 가지 주요 방법은 HTTP를 통해 종료 신호 전송 또는 서비스 중지를 사용합니다.
Spring Boot 앱을 폐쇄하기위한 전제 조건은 Pom.xml이 다음 내용을 추가한다는 것입니다.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-승인기 </artifactid> </fectionency>
Application.properties에 추가 :
#enable shutdownendpoints.shutdown.enabled = true#암호 검증 endpoints.shutdown.sensitive = false
마감 명령은 다음과 같습니다.
CURL -X POST 호스트 : PORT/SHUTDOWN# DEMO $ CURL -X POST http : // localhost : 8080/shutdown { "message": "shutting, bye ..."} $ curl -x post http : // localhost : 8080/관리/종료 { "메시지": "종료 ..."}.경로를 구성하려면 Application.Properties에서 management.context -path =/manage를 추가해야합니다. 종료 명령은 curl -x post host : port/manage/shutdown이됩니다.
4. 보안 검증
닫을 때 보안 확인이 필요한 경우 pom.xml 파일을 추가하십시오.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-보안 </artifactid> </fectionency>
Application.properties에 추가 :
#enable shutdown security verification endpoints.shutdown.sensentive = true#사용자 이름 보안 확인 확인
마감 명령은 다음과 같습니다.
curl -u 관리자 : 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 (”message":`shutting down, bye ... "}.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.