Spring Boot kann als Produkt der besten Praxis des Spring-Frameworks für das Konzept der "Konvention über Konfiguration" helfen, schnell unabhängige Anwendungen auf dem Produktionsrahmen auf Produkt auf Produktebene zu erstellen. Die meisten Spring -Boot -Anwendungen erfordern nur sehr wenig Konfiguration, um schnell auszuführen. Es ist ein Mikro-Framework, das mit Microservices recht übereinstimmt.
1. Spring -Boot -Anwendungspaket
Die Spring -Boot -Anwendung kann in ein JAR -Paket eingegeben werden, wobei Tomcat eingebettet ist, damit sie direkt gestartet werden kann. Bevor die Spring -Boot -Anwendung gestartet wird, ist zuerst die Verpackung erforderlich. In diesem Artikel geht es um die Verpackung des Maven -Projekts. Die für die Verpackung erforderlichen Voraussetzungen (der Inhalt in der Datei pom.xml) sind:
... <Packages> jar </packaging> ... <De vorstellen> <gruppe> org.springFramework.boot </gruppeId> <artifactId> Spring-Boot-Starter-Web </artifactId> </abhängig> ... <Builds <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.***.Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins></build>...
Der Paketbefehl lautet:
MVN Clean Package -dmaven.test.skip = true# Demo $ MVN Clean Paket -dmaven.test.skip = True [Info] Scannen nach Projekten ... [WARNUNG] Einige Probleme wurden beim Erstellen des effektiven Modells für Com.example: MyProject: Jar: 0.0.1 -SnapShots [Warning] 'building.project: 0.0.1 -snapShot' für [Warning] 'building.Plugin: 0.0.1 -snapShots [Warning]' 'building.Plugin: org.springframework.boot: Spring-Boot-Maven-Plugin fehlt. @ Zeile 38, Spalte 17 [Warnung] [Warnung] Es wird dringend empfohlen, diese Probleme zu beheben, da sie die Stabilität Ihres Gebäudes bedrohen. --------------------------------------------------------------------------------------------------------------------------------------------------------- 0.0.1-Snapshot [Info] -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Tatsächlich), um gefilterte Ressourcen zu kopieren, ist dh Build plattformabhängig! [Info] Kopieren von 1 Ressource [Info] [Info] --- Maven-Kompiler-Plugin: 3.1: Kompilieren (Standard-Kompilen) @ MyProject --- [Info] Änderungen erkannt-Einkompilieren des Moduls, das das Modul einkompilieren. /Benutzer/LTC/Spring Boot Demo/Target/Klassen [Info] [Info] --- Maven-Ressources-Plugin: 2.6: TestResources (Standard-Testresources) @ MyProject --- [Info] Kopieren von TEST-Ressourcen nicht kopieren. Quellen [info] [info] --- maven-surefire-plugin: 2.12.4: test (Standardtest) @ MyProject --- [Info] Tests werden übersprungen. Demo/Target/MyProject-0.0.1-Snapshot.jar [info] [info] --- Spring-Boot-Maven-Plugin: 1.5.0.rc1: Repackage (Standard) @ MyProject --- [Info] ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Oder run run -> maven Build ... In Eclipse füllen Sie das saubere Paket -DMaven.test.skip = true in Toren, laufen, das Paket ist abgeschlossen.
2. Startpolsteranwendungsanwendungsanwendungsanwendungen
Der Startbefehl von Spring Boot lautet:
java -jar application.jar# Demo $ java -jar target/MyProject -0.0.1 -Snapshot.jar. ____ __ _ /// ___'_ __ _ _ (_) _ __ _ / / / / () / ___ | '_ |' _ | / / `| / / / / / / / / / / / / / / / | | | | | | | | | | | | .__ | | _ | | _ | | ================ieben (/Benutzer/LTC/Spring Boot Demo/Target/MyProject-0.0.1-Snapshot.jar Start von liutianchi in/user/ltc/Spring Boot Demo) 2017-01-13 15: 31: 36.916 Info 62119-[Main] com.test.Example: Keine aktiven Profilset, fällt auf Default-Profiform: Default201-01-01-01-01-13. 15: 31: 36.981 Info 62119 --- [Main] ATionConFigembededwebApplicationContext: Aktualisieren orgs Wurzel des Kontextes Hierarchy2017-01-13 15: 31: 38.602 Info 62119 --- [Main] sbcettomcatembeddedServletContainer: Tomcat initialisiert mit Port (s): 8080 (http) 2017-01-13 15: 31: 38.615 Info 62119-[Main] O.APACHE.CATALINA.CORE.STANDardService: Service Tomcat2017-01-13 15: 31: 38.616 Info 62119-[Haupt] org.apache.catalina [ost-startStop-1] occc [tomcat]. [localhost]. [/]: initialisieren von frühling eingebetteten webdepfungcontext2017-01-13 15: 31: 38.718 Info 62119 --- [ost-startstop-1] occc [tomcat]. 15: 31: 38.718 Info 62119 --- [Ost-StartStop-1] Osweb.Context.Contextloader: Root WebApplicationContext: Initialisierung in 1740 MS2017-01-13 15: 31: 38.927 Info 62119 --- [Ost-Start-Start-1] OSBWServlet. 'Dispatherservlet' zu [/] 2017-01-13 15: 31: 38.932 Info 62119 --- [Ost-StartStop-1] OSBWServlet.FilterregistrationBean: Mapping-Filter: 'MetricsFilter' to: [/*] 2017-01-13 15: 31: 38.932 Info 62119-[OststOp-1] OSBWServlet.FilterregistrationBean: Mapping-Filter: 'CharakterCodingFilter' an: [/*] 2017-01-13 15: 31: 38.932 Info 62119 --- [Ost-StartStop-1] osbwServlet.FilterregistrationBean: Mapping-Filter: 'HiddenhttpMethtpMethtpMethtpMethtpMethDeTpMethddddenhdddenhDdenhDdenhDdenhDdenhDdenhDdenht. 15: 31: 38.932 Info 62119 --- [Ost-StartStop-1] OSBWServlet.FilterregistrationBean: Mapping-Filter: 'HiddenhttpMethodFilter' An: [/*] 2017-01-13 15: 31: 38.932 Info 62119-[Ost-Startstop-1] osbwServlet. filter: 'httpPutFormContentFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] osbwServlet.filterregistrationBean: Mapping-Filter: 'WebRequestLoggingFilter' an: [/*] 2017-01-13 15: 31: 38.932 Info 62119-[Ost-Startstop-1] Osbwservlet. [/*]2017-01-13 15:31:39.217 INFO 62119 --- [ main] swsmmaRequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@b1a58a3: startup date [Fri Jan 13 15:31:36 CST 2017]; Wurzel des Kontextes Hierarchy2017-01-13 15: 31: 39.310 Info 62119 --- [Main] SWSMmarequestMapingHandlermaping: Zugeordnet "{[/]}" auf Java.lang.String Com.test.Example.Home () 2017-013 15: 31: 313: 39.313 Info 62119 --- swsmmarequestmapingHandlermaping: zugeordnet "{[/errungen]}" auf public org.springframework.http.ResponseEntity <java.util.map <java.lang.string, java.lang.object >>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)2017-01-13 15:31:39.313 INFO 62119 --- [ main] swsmmaRequestMappingHandlerMapping: Mapped "{[/errungen], produziert = [text/html]}" auf public org.springframework.web.servlet.ModelandView org.springframework.boot.autoconfigure.web.basicerrorController.Errorhtml (javax.servlet.http.httpServletrequest, Javax.Servlet.http.httpervletRespectresponse) 2017-01-13 15: 31: 31: 31: 39.3338 62119-01-13 15: 31: 31: 39.338 62119-01-013: 31: 31: 39.338 62119-01-013: 31: 31: 39.338 62119-01-013: 31: 31,3338 62119-01-13 15: 31: 31.33338) OSWSHANDLER.SimpleurlHandlermaping: Zugeordnete URL-Pfad [/webjars/**] auf Handler des Typs [Klasse org.springFramework.Web.Servlet.Resource.ResourcehttprequestHandler] 2017-01-13 15: 39.3338 Info 62119 --- [Main] oswShandler. Zugeordneter URL-Pfad [/**] auf den Handler des Typs [Klasse org.springFramework.web.servlet.Resource.ResourcehttprequestHandler] 2017-01-13 15: 31: 39.378 Info 62119-[Main] oswshandler.simpleurlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandlhandL. Typ [Klasse org.springframework.web.servlet.resource.resourcehttprequestHandler] 2017-01-13 15: 31: 39.665 Info 62119 --- [Main] Osbaemvc.endpoInthandlermapping: Abgepflegt "{[/manage/metrics/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)2017-01-13 15: 31: 39.665 Info 62119 --- [Main] Osbaemvc.endpoInThandLmaping: Zugeordnet "{[/verwalten/metriken || /Manage/Metrics org.springFramework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.666 Info 62119 --- [main] osbaemvc.endpoInTHandhermaping: Mord "{[/verwalten"/Mappings || /Manage/mappings.json weibliche, Methoden=-2 -GEL. osbaemvc.endpointhandlmaping: zugeordnet "{[/verwalten/trece || /manage/trace.json weibliche, Methoden= Status, Produces=..Application/json]} auf öffentliche Java.lang.object org.springFramework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.667 Info 62119 --- [main] osbaemvc.endpoinTHandLermapping: Mord "{[/verwalten Sie/info || /Manage/info.json weibliche, methods= 2GEL. Osbaemvc.endpoInThandLmaping: zugeordnet "{[/verwalten/configProps || /Manage/Configprops.json weibliche, Methoden= -Datei. org.springFramework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.669 Info 62119 --- [main] osbaemvc.endpoinTHandhermapping: Mord "{[/verwalten"/hepdump || /Manage/heapdump.json weibliche, Methode=-Di, Produces= -Application/octet-stream]} “auf öffentliche Leere org.springFramework.boot.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (boolean, javax.servlet.http.httpServletRequest, javax.servlet.http.httpServletResponse) Throws Java.io.ioException, javax.servlet.servlet.servletException2017-01-13 15: 31: 39.669 Info 62119 --- [Main] osbaemvc.endpoInTHandlermaping: kartiert "{[/verwalten/Autoconfig || /Manage/autoconfig.json weibliche, Methode=-2get. osbaemvc.endpointhandlmaping: zugeordnet "{[/manage/env/ < org.springframework.boot.actuate.endpoint.mvc.environmentmvcendpoint.value (Java.lang.String) 2017-01-13 15: 31: 39.673 Info 62119 --- [Main] osbaemvc.endpointhandlermaping: mappping: maped /Manage/env.json weibliche, Methoden=-2 -GEL. Osbaemvc.endpoInThandLmaping: Zugeordnet "{[/verwalten/health || /manage/Health.json weibliche, produces= -Aapplication/json]}" auf public Java.lang.object org.springframework.boot.actuate.endpoint.mvc.HealthMvcendpoint.invoke (Java.Security.principal) 2017-01-13 15: 31: 39.675 Info 62119 --- [Main] osbaemvc.endpoinSthandlermaping: mapped: mapping: mapping: mapping: {{{{{{{{{{{{{{{{{{[/verwaltete/|| /Manage/dump.json weibliche, Methoden=-2 -GEL. osbaemvc.EndpointHandlerMapping : Mapped "{[/manage/shutdown || /manage/shutdown.json],methods=[POST]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.ShutdownMvcEndpoint.invoke()2017-01-13 15:31:39.678 Info 62119 --- [Main] osbaemvc.endpointhandlmaping: zugeordnet "{[/verwalten/beans || /manage/beans.json weibliche, methods=ente. org.springFramework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.799 Info 62119 --- [Main] OsjeaAntationMbeanExporter: Registrierung von Bohnen für JMX Exposition zu Startup2017-0113 15: 31: 31: 31.809 --- [Startup2017-01-13 OscSupport.DefaultLifecycleProcessor: Startbohnen in Phase 02017-01-13 15: 31: 39.944 Info 62119-[Haupt] sbcettomcatembeddedServletContainer: Tomcat begonnen auf Port (S): 8080 (HTTP) 2017-01-13 15: 31: 31: 39.949- com.test.example: Beispiel für ein Beispiel in 4,292 Sekunden (JVM für 4,726) 3. Spring Boot App schließt
Es gibt zwei Hauptmöglichkeiten zum Schließen des Spring -Starts: Senden von Heruntergangssignalen über HTTP oder Verwendung des Service -Stopps.
Die Voraussetzung für das Schließen der Spring -Boot -App ist, dass pom.xml den folgenden Inhalt hinzufügt:
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Actuator </artifactid> </abhängig>
In application.Properties hinzugefügt:
#Enable stilldownendpoints.shutdown.enabled = true#Kennwortüberprüfung Endpoints.shutdown.Sensitive = False
Der Schließbefehl lautet:
curl -x post host: port/stilldown# demo $ curl -x post http: // localhost: 8080/stilldown {"message": "schalten, bye ..."} $ curl -x post http: // localhost: 8080/verwalten/stilldown {"message": "schaltenWenn Sie den Pfad konfigurieren möchten, müssen Sie in application.Properties Management addieren.
4. Sicherheitsüberprüfung
Wenn beim Schließen eine Sicherheitsüberprüfung erforderlich ist, fügen Sie die Datei pom.xml hinzu:
<Depopenty> <gruppe> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-Security </artifactid> </abhängig>
In application.Properties hinzugefügt:
#Enable Shutdown -Sicherheitsüberprüfungsendpunkte
Der Schließbefehl lautet:
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
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.