淺談springboot的三種啟動(dòng)方式
有段時(shí)間沒(méi)有寫(xiě)博客了,也在努力的從傳統(tǒng)單機(jī)開(kāi)發(fā)向分布式系統(tǒng)過(guò)度,所以再次做一些筆記,以方便日后查看。
直接進(jìn)入正題吧,今天記錄spring-boot項(xiàng)目的三種啟動(dòng)方式。
spring-boot的啟動(dòng)方式主要有三種:
1. 運(yùn)行帶有main方法類
2. 通過(guò)命令行 java -jar 的方式
3. 通過(guò)spring-boot-plugin的方式
一、執(zhí)行帶有main方法類
這種方式很簡(jiǎn)單,我主要是通過(guò)idea的方式,進(jìn)行執(zhí)行。這種方式在啟動(dòng)的時(shí)候,會(huì)去自動(dòng)加載classpath下的配置文件
(這里只是單獨(dú)的強(qiáng)調(diào)了classpath下,其實(shí)spring-boot有自己的加載路徑和優(yōu)先級(jí)的,日后在發(fā)布).
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
public String home() {
return "Hello World";
}
public static void main(String[] args) {
/**
* SpringApplication會(huì)自動(dòng)加載application.properties文件,具體的加載路徑包含以下:
* <p>
* 1. A <b>/config</b> subdirectory of the current directory;
* <p/>
* <p>
* 2. The Current Directory
* </p>
* <p>
* 3. A classpath /config package
* </p>
* <p>
* 4. The classpath root.
* </p>
*/
SpringApplication.run(Example.class, args);
}
}
在idea中,可以通過(guò)配置application的方式配置上自己請(qǐng)求參數(shù)

二、通過(guò)java -jar的方式
java -jar jar_path --param
jar_path: 指代將項(xiàng)目打包為jar打包之后的存儲(chǔ)路徑
--param: 為需要在命令行指定的參數(shù)。例如:
java -jar emample.jar --server.port=8081
該命令通過(guò)在啟動(dòng)行指定了項(xiàng)目啟動(dòng)后綁定的端口號(hào),因?yàn)樵撁钚袇?shù),將會(huì)覆蓋application.properties中的端口配置
三、通過(guò)spring-boot-plugin方式啟動(dòng)
如果需要正常使用該maven查件,需要我們?cè)趍aven項(xiàng)目中增加以下插件配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--<version>${spring.boot.version}</version>-->
<!--<executions>-->
<!--<execution>-->
<!--<goals>-->
<!--<goal>repackage</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
</plugin>
注: 因?yàn)槲以陧?xiàng)目中指定了父模塊 spring-boot-starter-parent。因此我不需要單獨(dú)指定插件版本,該父模塊會(huì)自動(dòng)匹配與當(dāng)前spring-boot版本相匹配的查件版本。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<!--<groupId>com.spring.sourcecode</groupId>-->
<!--<artifactId>learn.spring</artifactId>-->
<!--<version>1.0-SNAPSHOT</version>-->
</parent>
準(zhǔn)備工作做好之后,我們需要進(jìn)入項(xiàng)目的根目錄,執(zhí)行
mvn sprint-boot:run
該命令能夠正常啟動(dòng)項(xiàng)目,但是如何為其指定執(zhí)行參數(shù)呢?
spring-boot:run該maven查件在插件首頁(yè)中指定了相關(guān)能夠使用的可選參數(shù):
通過(guò)查閱文檔,可以通過(guò)命令的方式查看具體選項(xiàng)的意義以及用法:
mvn spring-boot:help -Ddetail

其中arguments的描述中,大意為:指定的參數(shù)會(huì)傳遞給具體應(yīng)用,如果有多個(gè)參數(shù)需要指定,以","進(jìn)行分割。具體用法通過(guò)run.arguments來(lái)指定:
mvn spring-boot:run -Drun.arguments="--server.port=8888"
以上就是三種啟動(dòng)方式的描述,我也是第一次學(xué)習(xí),做一下筆記吧!也希望大家多多支持腳本之家。
相關(guān)文章
Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能
今天小編就為大家分享一篇關(guān)于Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
SpringBoot與knife4j的整合使用過(guò)程
Knife4j?是一個(gè)基于Swagger構(gòu)建的開(kāi)源?JavaAPI文檔工具,主要包括兩大核心功能:文檔說(shuō)明和在線調(diào)試,這篇文章主要介紹了SpringBoot與knife4j的整合使用,需要的朋友可以參考下2024-08-08
Spring AOP的底層實(shí)現(xiàn)方式-代理模式
這篇文章主要介紹了Spring AOP的底層實(shí)現(xiàn)方式-代理模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Activiti7與Spring以及Spring Boot整合開(kāi)發(fā)
這篇文章主要介紹了Activiti7與Spring以及Spring Boot整合開(kāi)發(fā),在Activiti中核心類的是ProcessEngine流程引擎,與Spring整合就是讓Spring來(lái)管理ProcessEngine,有感興趣的同學(xué)可以參考閱讀2023-03-03
jpa實(shí)現(xiàn)多對(duì)多的屬性時(shí)查詢的兩種方法
這篇文章主要介紹了jpa實(shí)現(xiàn)多對(duì)多的屬性時(shí)查詢的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(55)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08
深入Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的介紹
本篇文章是對(duì)Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的概述,需要的朋友參考下2013-05-05
Java?SpringTask定時(shí)自動(dòng)化處理方法
這篇文章主要介紹了Java?SpringTask定時(shí)自動(dòng)化處理,通過(guò)自動(dòng)化,不僅可以提高工作效率和準(zhǔn)確性,還可以釋放人力資源以專注于更高價(jià)值的工作,需要的朋友可以參考下2024-08-08

