您好,登錄后才能下訂單哦!
我們都知道,SpringBoot框架最吸引人的地方之一就是他針對各種框架組件集成都提供了缺省的配置,“零配置”集成和開發是它的終極目標。理論上你不做任何特殊配置,都可以啟動項目。
如果你用SpringBoot用于web項目開發,那么他就已經內嵌了web容器,無需你單獨部署到tomcat或者jetty等容器中,打包成jar包即可運行,省去了反鎖的打包部署流程。默認情況下,由SpringBoot啟動的web項目,默認端口是8080,這也是tomcat或jetty的默認端口。那么問題來了,我要改端口怎么辦,這是必然會遇到的問題。
還記得運行SpringBoot項目時,需要編寫的main方法嗎,當時的代碼是這樣的:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}
注意,這是一個main方法,動態傳入啟動參數,這跟普通運行一個java程序沒什么區別。args就是他的啟動參數,它是一個數組,可以帶一個或多個參數。
那這個參數是用來做什么的?既然springboot默認做好了大部分的配置,那么要修改這些配置,就是通過傳入main方法執行的參數將覆蓋框架自動為你做好的配置。
比如,你可以用如下的類似代碼,來修改你啟動項目的端口:
java -jar xxx.jar --server.port=8888
再比如,你可以如下的類似代碼,來修改你啟動的項目在控制臺輸出的logo,
java -jar xxx.jar --spring.banner.location=classpath:banner.txt
最終的效果也就是把啟動時,你經常看到的這個
替換成了這個:
諸如此類,還可以定制其他很多默認設置,當然有些需要在pom文件中添加相應的模塊依賴,才能使用相應的功能。比如你用到了redis,那么你需要添加
spring-boot-starter-data-redis來把redis的默認設置先加載進來,在這基礎上,你就可以編寫定制參數,比如:
java -jar xxx.jar --spring.redis.port=6379
注意,命令的格式是:
#參數需要跟在jar包名稱之后以--開頭
java -jar xxx.jar --參數名=參數值
你也可以在運行時,同時添加多個定制參數(以空格隔開),比如把上述幾個例子合并起來就是:
java -jar xxx.jar --server.port=8888 --spring.banner.location=classpath:banner.txt --spring.redis.port=6379
理論上,能支持定制的參數,都可以添加。
附帶說一句,用IDEA或者Myeclipse這樣的IDE幫你運行項目的時候,其原理也是如此。
那么,現在就有兩個問題出現了。
1、我怎么知道springboot支持哪些定制參數?
2、這么多參數,都寫到運行命令上嗎?那樣豈不是會顯得很臃腫,貌似一點都不優雅?
這兩個問題,留到下次再談。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。