Spring Boot, как продукт наилучшей практики Spring Framework для концепции «Конвенция о конфигурации», может помочь нам быстро создать независимые приложения на основе Spring Framework на уровне продукта. Большинство приложений Spring Boot требуют очень небольшой конфигурации для быстрого запуска. Это микрофрамовая работа, которая вполне соответствует микросервисам.
1. Пакет пакет приложений для загрузки Spring
Приложение Spring Boot может быть введено в пакет JAR, с встроенным в него Tomcat, так что его можно запустить напрямую. Однако до начала приложения Spring Boot, сначала необходима упаковка. В этой статье рассказывается о упаковке проекта Maven. Предварительные условия, необходимые для упаковки (содержание в файле pom.xml):
... <CACKEDGE> JAR </packaging> ... <segegency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-web </artifactid> </depertive> ... <buld> <blicins> <groupid> org.spramework.boot </Groupid> <ratifactid> spring-boot-mavin-mavin-mavin-mavin-pramefact. <COUNITURUTION> <Bainclass> com. ***.
Команда пакета:
MVN Clean Package -dmaven.test.skip = true# demo $ mvn clean package -dmaven.test.skip = true [info] Сканирование для проектов ... [предупреждение] [предупреждение] Некоторые проблемы были столкнулись при создании эффективной модели для Com.example: MyProject: jar: 0.0.1 -snapshot [предупреждение] org.springframework.boot: Spring-Boot-Maven-Plugin отсутствует. @ Line 38, столбец 17 [Предупреждение] [Предупреждение] Настоятельно рекомендуется решать эти проблемы, потому что они угрожают стабильности вашего здания. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.0.1-Snapshot [Info] --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. На самом деле) копировать отфильтрованные ресурсы, то есть сборка зависит от платформы! [Информация] Копирование 1 ресурса [Info] [Info] --- Maven-Compiler-Plugin: 3.1: Compile (по умолчанию-компиляции) @ myproject --- Обнаруженные изменения-перекомпиляция модуля! /Пользователи/LTC/Spring Boot Demo/Target/Classes [Info] [Info] --- Maven-Resources-Plugin: 2.6: Testresources (по умолчанию stestresources) @ myproject --- [info] Не копирование тестов Источники [Информация] [Информация] --- Maven-Surefire-Plugin: 2.12.4: тест (test-test) @ myProject --- [Информация] Тесты пропущены. Demo/Target/MyProject-0.0.1-snapshot.jar [info] [Info] --- Spring-Boot-Maven-Plugin: 1.5.0.rc1: переупаковка (по умолчанию) @ myproject --- [Информация] ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
Или запустить run -> Maven Build ... В Eclipse заполните чистый пакет -dmaven.test.skip = true в целях, запустить, пакет завершен.
2. Запуск приложения Spring Boot.
Команда начала Spring Boot:
java -jar application.jar# demo $ java -jar target/myproject -0.0.1 -snapshot.jar. ____ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / / (() / ___ | '_ |' _ | / / / `| / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | (_ | |))) '| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .__ | | _ | | _ | | =============================================================================== (/Users/ltc/spring boot demo/target/myproject-0.0.1-snapshot.jar, начатое Liutianchi в/пользователи/LTC/Spring Boot Demo) 2017-01-13 15: 31: 36.916 Информация 62119 --- [Main] Com.test.Example: Нет активного профиля, падает, чтобы обратиться к дефициту: нет :-017-13- 15: 31: 36.981 Информация 62119 --- [Main] ationConfigeDdedWebApplicationContext: освежающий org.springframework.boot.context.embedded.annotationConfigeMbeddedWebApplicationContext@b1a58a3: Дата запуска [Фри 13 15:31:36 CST 2017]; Корень контекста иерархии2017-01-13 15: 31: 38.602 Информация 62119 --- [Main] sbcettomcatembeddedservletcontainer: Tomcat инициализированный с портом (S): 8080 (http) 2017-01-13 15: 31: 38.615 Info 62119 --- : Стартовая служба tomcat2017-01-13 15: 31: 38.616 Информация 62119 --- [Main] org.apache.catalina.core.standardengine: Начальный сервственный двигатель: Apache Tomcat/8.5.62017-01-13 15: 31: 38.718 Информация 62119 ---- occc [tomcat]. [localhost]. [/]: инициализация Spring Embedded WebPplicationContext2017-01-13 15: 31: 38.718 Информация 62119 --- [ost-startstop-1] occc [tomcat]. --- [ost-startstop-1] osweb.context.contextloader: root webpplicationcontext: инициализация, завершенная в 1740 MS2017-01-13 15: 31: 38.927 Информация 62119 --- [OST-StartStop-1] OSBWServlet.servletregistrationBean: Сопоставление: 15: 31: 38.932 Информация 62119 --- [ost-startstop-1] osbwservlet.filterRegistrationBean: Картирование фильтра: «MetricsFilter 'to: [/*] 2017-01-13 15: 31: 38.932 Информация 62119 --- [ost-shartstop-1] osbwservate.filtertatortation.filtertation.filtertation.filtertatortation.filtertatortation.filtertatortation.filtertatortation.Filtertatortatortation.Filtertation.Filtertation.Filtertatortation.Filtertatortation.Filtertatortation.Filtertatortation.Filtertatortation.Filtertator. 'Harmentencodingfilter' to: [/*] 2017-01-13 15: 31: 38.932 Информация 62119 --- [OST-StartStop-1] OSBWServlet.FilterRegistrationBean: Картирующий фильтр: 'hiddenhttpmethodfilter' to: [/*] 2017-011-13 15: 31: 38.93-62-62-62111111119. [ost-startStop-1] osbwservlet.filterRegistrationBean: Картирование фильтра: «hiddenhttpmethodfilter 'to: [/*] 2017-01-13 15: 31: 38.932 Информация 62119 --- [ost-startstop-1] osbwservlet.filtergistrationbeanbean: mapping-startstop-1] Osbwservlet.filterbeanbean :- 'httpputformcontentfilter' to: [/*] 2017-01-13 15: 31: 38.932 Информация 62119 --- [ost-startstop-1] osbwservlet.filterRegistrationBean: отображение фильтра: 'requestContextfilter' to: [/*] 2017-01-13 15: 31: 38,93-62119-62119-62119. [ost-startStop-1] osbwservlet.filterRegistrationBean: Картирующий фильтр: «WebRequestLoggingFilter». [/*] 2017-01-13 15: 31: 39.217 Информация 62119 --- [Main] SWSMMARequestmappingHandlerAdapter: ищу @ControllerAdvice: org.springframework.boot.context.embedded.annotationConfigeDdedWebPplicationContextCoplectOntex 2017]; Корень контекста иерархии2017-01-13 15: 31: 39.310 Информация 62119 --- [Main] SWSMMArequestmappingHandlermapping: mapped "{[/]}" на java.lang.string com.test.example.home () 2017-01-13 15: 31: 39.313 info 62119 --- Сопоставлено "{[/erry]}" на публичную 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 Информация 62119 --- "{[/error], производит = [text/html]}" на public org.springframework.web.servlet.modelandView org.springframework.boot.autoconfigure.web.basicerrorController.errorhtml (javax.servlet.http.httpservletrequest, javax.servlet.http.httpservletrespons OSWSHANDLER.SIMPLEURLHANDLERMAPPPONG: MAPT URL PATH [/webjars/**] на обработчик типа [класс org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.338 Info 62119-[main]. Путь URL [/**] на обработчик типа [класс org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.378 Информация 62119 --- org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.665 Информация 62119 --- [Main] OSBAEMVC.EndPointhandLermapp: Сопоставлена на карту. "[[/manage/metrics/{name:.*_MOTRY,,,methods=*GET^,,produces==Pplication/json]}" на public java.lang.object org.springframework.boot.actuate.endpoint.mvc.metricsmvcendpoint.value (java.lang.string) 2017-0113-0113-0113-0113-013-0113-0113-0113-0113-0113-0113-0113-0113-011111113-13-13-0113-0113-011111111111. 15: 31: 39.665 Информация 62119 --- [main] osbaemvc.endpointhandLermapping: mappen "{[/manage/metrics ||/manage/metrics.jsonün,,,methods=*Gettn org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.666 Информация 62119 --- [Main] OSBAEMVC.ENDPointhandLermapp: Карточка "{[/Manage/Mappings || /manage/mappings.json 199, на публике java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39. OSBAEMVC.ENDPOINTHANDLERMAPPPONAP: MAPTED "{[/Manage/TRACE ||/MANAGE/TRACE.JSON],,,methods=*GETY,,PRODUCES=TAPPLICATIA org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.667 Информация 62119 --- [Main] OSBAEMVC.EndPointhandLermapping: нанесено на карту »{[/Man Manage/Info || /manage/info.json 199, Methods=nget^,,produces=zapplication/json]} «на публичную java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.668. OSBAEMVC.ENDPOINTHANDLERMAPPPENT: MAPTED "{[/Manage/configProps ||/manage/configprops.json Итак, methods=*GetTY,, org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.669 Информация 62119 --- [Main] OSBAEMVC.EndPointhandLermapppopping: нанесено на карту "{[/Manage/HeapDump || /manage/heapdump.json!,,methods=nget^,produces=*Pplication/octet-stream]} "на публичную void org.springframework.boot.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (boolean, javax.servlet.http.httpservletrequest, javax.servlet.http.httpservletresponse) java.io.ioexception, javax.servlet.servlet.servletexception2017-01-13 15: 31: 39.669 Информация 62119 --- [main] osbaemvc.endpointhandLermapp: maped "{[/Manage/AutoConfig || /manage/autoconfig.json!,,methods=*gget^,,produces=*Pplication/json]} «на публичную java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39,673-6211111111111111111111111111 год-6211111111111111111111111111 год-62111111111111111. OSBAEMVC.ENDPOINTHANDLERMAPPPENT: MAFFED "{[/MANAGE/ENV/{NAME:.RIT org.springframework.boot.actuate.endpoint.mvc.environmentmvcendpoint.value (java.lang.string) 2017-01-13 15: 31: 39.673 Информация 62119 --- [main] osbaemvc.endpointhandlermpation: сопоставлено »(/Manage/Ener || /manage/env.jsonвели, Methods=nget^,,produces=*Pplication/json]} «на публичную java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39,674 Информация 6211999--Main]-Main]-Main]-Main]-Main]-Main]-Main]-Main]. OSBAEMVC.ENDPOINTHANDLERMAPPPENT: MAPTED "{[/Man Manage/Health ||/Manage/Health.json определил, Produces=сона application/json]}" на публичную java.lang.object org.springframework.boot.actuate.endpoint.mvc.healthmvcendpoint.invoke (java.security.principal) 2017-01-13 15: 31: 39.675 Информация 62119 --- [Main] Osbaemv.endThandLermpation: сопоставлено "(/Manage/Dills |ky /manage/dump.json 199,methods=*GET^,,produces=*pplication/json]} "на публичную java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39,67777777111111111999 годы. OSBAEMVC.ENDPOINTHANDLERMAPPPENT: MAPTED "{[/Manage/werlown ||/manage/shutdown.json= Methods=*}" на public java.lang.object org.springframework.boot.actuate.endpoint.mvc.shutdownmvcendpoint.invoke () 2017-0171713 гг. 62119 --- [main] osbaemvc.endpointhandLermapping: maped "{[/manage/beans ||/manage/beans.json^,,methods=nget^,, org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.799 Информация 62119 --- [Main] OsjeaAnanotationmbeanexporter: Регистрация бобов для JMX. OSCSUpport.DefaultLifeCycleProcessor: Стартовые бобы на фазе 02017-01-13 15: 31: 39.944 Информация 62119 --- [Main] SbcettomCatembeddessservletcontainer: Tomcat начал в порту (S): 8080 (HTTP) 2017-01-13 15: 31: 39,9999-6219-62119-62119-62119-62119-6219-62119-62119-62119-6219-62119-62119-62119-62119-62119-62119-62119-62119-62119-62119-62119-62119. com.test.example: запустил пример за 4,292 секунды (JVM работает для 4.726) 3. Закрывает приложение для Spring Boot
Существует два основных способа закрыть Spring Boot: отправка сигналов выключения через HTTP или использование Service Stop.
Предварительным условием для закрытия приложения Spring Boot является то, что Pom.xml добавляет следующее содержимое:
<Depeication> <groupid> org.springframework.boot </GroupID> <ArtifactId> Spring-Boot-Starter-Actuator </artifactid> </depervice>
Добавлено в Application.properties:
#Enable shutdownendpoints.shutdown.enabled = true#отключить проверку пароля.
Закрывающая команда:
Curl -x Post Host: Port/Shutdown# demo $ curl -x post http: // localhost: 8080/shutdown {"message": "Выключение, пока ..."} $ curl -x post http: // localhost: 8080/manage/shutdowЕсли вы хотите настроить путь, вам необходимо добавить Management.context -path =/Manage in application.properties, команда выключения становится Curl -x Post Host: Port/Manage/Shutdown.
4. Проверка безопасности
Если при закрытии требуется проверка безопасности, добавьте в файл pom.xml:
<Depective> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-Boot-Starter-Security </artifactid> </dependency>
Добавлено в Application.properties:
#ENABLE SHUTDOWNER SEGICE Verification EndPoints.shutdown.sensitive = true#verife username security.user.name = admin#проверка пароля безопасности. User.password = admin#управление ролями. Security.Role = Superuser#Указание портового управления.
Закрывающая команда:
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 больше.