亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot的應用啟動與關閉的方法

2024-07-13 10:14:18
字體:
來源:轉載
供稿:網友

Spring Boot,作為Spring框架對“約定優先于配置(Convention Over Configuration)”理念的最佳實踐的產物,它能幫助我們很快捷的創建出獨立運行、產品級別的基于Spring框架的應用,大部分Spring Boot應用只需要非常少的配置就可以快速運行起來,是一個與微服務(MicroServices)相當契合的微框架。

1. Spring Boot應用打包

Spring Boot應用可以打成jar包,其中內嵌tomcat,因此可以直接啟動使用。但是在Spring Boot應用啟動之前,首先需要進行打包,本文講述的是Maven工程的打包,打包需要的前提條件(pom.xml文件中的內容)是:

...<packaging>jar</packaging>...<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId></dependency>...<build>  <plugins>    <plugin>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-maven-plugin</artifactId>      <configuration>        <mainClass>com.***.Application</mainClass>      </configuration>      <executions>        <execution>          <goals>            <goal>repackage</goal>          </goals>        </execution>      </executions>    </plugin>  </plugins></build>...

打包命令為:

mvn clean package -Dmaven.test.skip=true# Demo$ mvn clean package -Dmaven.test.skip=true[INFO] Scanning for projects...[WARNING] [WARNING] Some problems were encountered while building the effective model for com.example:myproject:jar:0.0.1-SNAPSHOT[WARNING] 'build.plugins.plugin.version' for org.springframework.boot:spring-boot-maven-plugin is missing. @ line 38, column 17[WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.[WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.[WARNING] [INFO]                                     [INFO] ------------------------------------------------------------------------[INFO] Building myproject 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ myproject ---[INFO] Deleting /Users/ltc/Spring Boot Demo/target[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myproject ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] Copying 1 resource[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myproject ---[INFO] Changes detected - recompiling the module![WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent![INFO] Compiling 1 source file to /Users/ltc/Spring Boot Demo/target/classes[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ myproject ---[INFO] Not copying test resources[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ myproject ---[INFO] Not compiling test sources[INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ myproject ---[INFO] Tests are skipped.[INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---[INFO] Building jar: /Users/ltc/Spring Boot Demo/target/myproject-0.0.1-SNAPSHOT.jar[INFO] [INFO] --- spring-boot-maven-plugin:1.5.0.RC1:repackage (default) @ myproject ---[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.861 s[INFO] Finished at: 2017-01-13T15:31:32+08:00[INFO] Final Memory: 26M/308M[INFO] ------------------------------------------------------------------------

或在eclipse中運行run -> Maven build...,在Goals中填寫clean package -Dmaven.test.skip=true,運行,打包完成。

2. Spring Boot應用啟動

Spring Boot的啟動命令為:

java -jar application.jar# Demo$ java -jar target/myproject-0.0.1-SNAPSHOT.jar  .  ____     _      __ _ _ /// / ___'_ __ _ _(_)_ __ __ _ / / / /( ( )/___ | '_ | '_| | '_ // _` | / / / / /// ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_/__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::    (v1.4.3.RELEASE)2017-01-13 15:31:36.911 INFO 62119 --- [      main] com.test.Example             : Starting Example on local with PID 62119 (/Users/ltc/Spring Boot Demo/target/myproject-0.0.1-SNAPSHOT.jar started by liutianchi in /Users/ltc/Spring Boot Demo)2017-01-13 15:31:36.916 INFO 62119 --- [      main] com.test.Example             : No active profile set, falling back to default profiles: default2017-01-13 15:31:36.981 INFO 62119 --- [      main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@b1a58a3: startup date [Fri Jan 13 15:31:36 CST 2017]; root of context hierarchy2017-01-13 15:31:38.602 INFO 62119 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)2017-01-13 15:31:38.615 INFO 62119 --- [      main] o.apache.catalina.core.StandardService  : Starting service Tomcat2017-01-13 15:31:38.616 INFO 62119 --- [      main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.62017-01-13 15:31:38.718 INFO 62119 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]    : Initializing Spring embedded WebApplicationContext2017-01-13 15:31:38.718 INFO 62119 --- [ost-startStop-1] o.s.web.context.ContextLoader      : Root WebApplicationContext: initialization completed in 1740 ms2017-01-13 15:31:38.927 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'metricsFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'httpPutFormContentFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'requestContextFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'webRequestLoggingFilter' to: [/*]2017-01-13 15:31:38.932 INFO 62119 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'applicationContextIdFilter' to: [/*]2017-01-13 15:31:39.217 INFO 62119 --- [      main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@b1a58a3: startup date [Fri Jan 13 15:31:36 CST 2017]; root of context hierarchy2017-01-13 15:31:39.310 INFO 62119 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto java.lang.String com.test.Example.home()2017-01-13 15:31:39.313 INFO 62119 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto 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] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)2017-01-13 15:31:39.338 INFO 62119 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2017-01-13 15:31:39.338 INFO 62119 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2017-01-13 15:31:39.378 INFO 62119 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2017-01-13 15:31:39.665 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/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] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/metrics || /manage/metrics.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.666 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/mappings || /manage/mappings.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.667 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/trace || /manage/trace.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.667 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/info || /manage/info.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.668 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/configprops || /manage/configprops.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.669 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/heapdump || /manage/heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException2017-01-13 15:31:39.669 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/autoconfig || /manage/autoconfig.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.673 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/env/{name:.*}],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)2017-01-13 15:31:39.673 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/env || /manage/env.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.674 INFO 62119 --- [      main] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/health || /manage/health.json],produces=[application/json]}" onto 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] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/dump || /manage/dump.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.677 INFO 62119 --- [      main] o.s.b.a.e.mvc.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] o.s.b.a.e.mvc.EndpointHandlerMapping   : Mapped "{[/manage/beans || /manage/beans.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()2017-01-13 15:31:39.799 INFO 62119 --- [      main] o.s.j.e.a.AnnotationMBeanExporter    : Registering beans for JMX exposure on startup2017-01-13 15:31:39.809 INFO 62119 --- [      main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 02017-01-13 15:31:39.944 INFO 62119 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)2017-01-13 15:31:39.949 INFO 62119 --- [      main] com.test.Example             : Started Example in 4.292 seconds (JVM running for 4.726)

3. Spring Boot應用關閉

下面主要有兩種方式進行Spring Boot的關閉:通過HTTP發送shutdown信號,或者通過service stop的方式。

Spring Boot應用關閉的前提條件是POM.xml添加以下內容:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-actuator</artifactId></dependency>

application.properties中添加:

#啟用shutdownendpoints.shutdown.enabled=true#禁用密碼驗證endpoints.shutdown.sensitive=false

關閉命令為:

curl -X POST host:port/shutdown# Demo$ curl -X POST http://localhost:8080/shutdown{"message":"Shutting down, bye..."}$ curl -X POST http://localhost:8080/manage/shutdown{"message":"Shutting down, bye..."}

如果要配置路徑,需要在application.properties中添加management.context-path=/manage,則關閉命令變為curl -X POST host:port/manage/shutdown。

4. 安全驗證

如果在關閉時需要安全驗證,則在pom.xml文件中添加:

<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-security</artifactId></dependency>

application.properties中添加:

#開啟shutdown的安全驗證endpoints.shutdown.sensitive=true#驗證用戶名security.user.name=admin#驗證密碼security.user.password=admin#角色management.security.role=SUPERUSER# 指定端口management.port=8081# 指定地址management.address=127.0.0.1

關閉命令為:

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{"message":"Shutting down, bye..."}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠躁天天躁日日躁欧美| 国产精品视频网址| 欧美激情2020午夜免费观看| 国产一区二区三区视频免费| 精品成人av一区| 不卡毛片在线看| 日韩在线播放一区| 欧美黄色片免费观看| 亚洲欧美国产精品va在线观看| 亚洲韩国欧洲国产日产av| 精品亚洲一区二区三区在线观看| 亚洲国产另类 国产精品国产免费| 欧美一级片在线播放| 国产亚洲精品va在线观看| xx视频.9999.com| 97色伦亚洲国产| 精品国产一区二区三区久久狼5月| 黄色91在线观看| 欧美国产日韩精品| 欧美激情在线视频二区| 日韩欧美在线视频日韩欧美在线视频| 精品久久久久久中文字幕一区奶水| 国产区精品在线观看| 黑人巨大精品欧美一区二区免费| 在线观看欧美视频| 亚洲视频在线看| 国产日韩欧美视频在线| 日韩成人在线播放| 国产成人免费av| 国产精品久久久一区| 5278欧美一区二区三区| 精品成人av一区| 日韩经典中文字幕在线观看| 亚洲欧美综合区自拍另类| www.日韩.com| 91沈先生在线观看| 色狠狠久久aa北条麻妃| 97在线观看免费| 97视频com| 国产精品人成电影在线观看| 欧美日韩性视频| 国产精品成久久久久三级| 久久视频免费在线播放| 91精品成人久久| 欧美日韩中文字幕日韩欧美| 在线观看不卡av| 成人网在线免费观看| 欧美在线性爱视频| 精品视频中文字幕| 91精品国产高清| 国产精品久久久亚洲| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品h在线观看| 欧美成人午夜剧场免费观看| 亚洲精品动漫100p| 亚洲欧美999| 国产精品高潮呻吟久久av黑人| 国精产品一区一区三区有限在线| 国产婷婷色综合av蜜臀av| 亚洲成色www8888| 国产99在线|中文| 国产精品狼人色视频一区| 欧美另类高清videos| 欧美激情精品久久久久久免费印度| 中文字幕无线精品亚洲乱码一区| 成人在线视频网站| 日韩视频―中文字幕| 国产亚洲精品美女| 久久免费视频观看| 亚洲成人黄色在线| 精品国产一区二区三区久久狼5月| 亚洲色图第一页| 国产精品久久久久久久久久| 91影院在线免费观看视频| 精品视频在线播放色网色视频| 国产91精品在线播放| 欧美性xxxx18| 欧美老女人在线视频| 91久久精品国产91久久| 91九色国产在线| 国内外成人免费激情在线视频网站| 欧美国产日本在线| 亚洲人成啪啪网站| 色天天综合狠狠色| 免费99精品国产自在在线| 97超级碰碰碰| 亚洲国产欧美一区| 日产精品久久久一区二区福利| 国产亚洲欧美视频| 亚洲人成在线播放| 日韩欧美在线视频免费观看| 国产成人精品网站| 亚洲网站视频福利| 精品国产91乱高清在线观看| 精品香蕉在线观看视频一| 国产一区二区美女视频| 久久免费视频在线观看| 日韩精品免费看| 欧美巨乳在线观看| 日韩精品中文字幕在线播放| 色多多国产成人永久免费网站| 日韩美女中文字幕| 色综合天天狠天天透天天伊人| 日韩一区av在线| 66m—66摸成人免费视频| 久久久精品视频成人| 久久精品99久久久久久久久| 国产精品成人免费电影| 亚洲成人黄色在线观看| 亚洲人成网站色ww在线| 日韩欧美aⅴ综合网站发布| 亚洲精品乱码久久久久久按摩观| 久久综合伊人77777| 在线免费看av不卡| 亚洲天堂av在线播放| 欧美专区中文字幕| 国产精品亚洲аv天堂网| 成人网在线观看| 欧美精品一二区| 中文字幕欧美国内| 91禁国产网站| 亚洲黄页网在线观看| www.亚洲人.com| 日韩电影免费观看在线| 久久噜噜噜精品国产亚洲综合| 午夜精品一区二区三区av| 亚洲欧美国产视频| 在线播放国产精品| 亚洲一区二区久久久| 日韩免费电影在线观看| 日韩视频亚洲视频| 91香蕉国产在线观看| 大伊人狠狠躁夜夜躁av一区| 亚洲视频精品在线| 国产精品天天狠天天看| 91九色视频在线| 中文在线资源观看视频网站免费不卡| 粉嫩老牛aⅴ一区二区三区| 成人午夜激情免费视频| 一道本无吗dⅴd在线播放一区| 日韩经典中文字幕在线观看| 最近2019中文字幕在线高清| 国产一区二区三区在线看| 色悠悠久久久久| 亚洲精品小视频| 91久久久久久久一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 91在线视频精品| 亚洲国产毛片完整版| 色综合久久中文字幕综合网小说| 久久久久国产一区二区三区| 国产精品免费电影| 国产亚洲精品久久久久动| 欧美高清在线视频观看不卡| 日韩精品中文字| 精品少妇v888av| 成人黄色av网站| 秋霞成人午夜鲁丝一区二区三区| 色偷偷9999www| 亚洲网站在线播放| 欧美综合一区第一页| 亚洲第一福利在线观看| 庆余年2免费日韩剧观看大牛| 亚洲va电影大全|