當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot_配置-配置文件的加载位置
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot_配置-配置文件的加载位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
springboot文件的加載位置,springBoot在啟動的時候,我們會把application.properties,或者application.yml,作為主配置文件,但是他的配置文件位置,既可以放到這個類路徑下,也可以放在指定位置,比如第一個位置,你放在config文件夾下面,或者直接放在當前項目的文件路徑下,或者你放在類路徑下的config下,或者你放在類路徑的根目錄里面,這個四個位置Springboot都可以識別,而且是按照四個位置的優先級,首先是第一個位置的文件,然后依次往下加載,由高到低,如果第一個文件配置的內容,已經加載過,在最后一個文件里邊,也有配置相同的內容,那么高優先級就會覆蓋低優先級
你也可以在類路徑的conf文件下,比如resources下寫一個config文件夾,然后我們調成8082server.port=8082那么是用8081端口還是8082端口呢,我們按照優先級的順序,類路徑下config文件夾下的東西,比類路徑根目錄下的東西,優先級更高一點,所以應該是8082端口,我來啟動測試一下,我們看到確實是8082Tomcat started on port(s): 8082 (http)當前文件的根目錄下,我們項目的根目錄下,我改成8083server.port=8083就按照8083啟動了,這是8083,包括我們使用config文件夾Tomcat started on port(s): 8083 (http)server.port=8084然后我們把application.properties放到里邊,我用8084,按照優先級,文件下的config下的優先級是最高的server.port=8084Tomcat started on port(s): 8084 (http)啟動他就應該用8084,這就是我們的路徑,記住這些優先級是由高到低,高優先級的配置,會覆蓋低優先級的配置,注意一句話,他叫覆蓋,SpringBoot只要這四個都有文件,SpringBoot會從這四個位置全部加載主配置文件,不是說高優先級的文件有了,后面的就不看了,高優先級有后面還要加載,一加載以后會形成一種效果,互補配置,什么叫互補配置呢,我來給大家舉個例子
現在我來到配置文件,我們這個配置文件都在配端口,生效的最終是8084端口,我在低優先級里面,再來配一個server.context-path,含義就是項目的訪問路徑,比如我們叫boot02server.context-path=/boot02配置項目的訪問路徑,我們把這個配上以后呢,我們來啟動項目,為了訪問路徑能夠測試效果,我來寫一個Controller,我們叫HelloController,這里我們寫一個@RestController,然后我們寫一個hello方法,訪問hello請求,@RequestMapping我們來處理hello請求,我們來訪問一下,來啟動程序,我們啟動首先看到,8084端口有效果,那是用到最高一級的8084,我再來訪問hello請求,首先是8084,我們訪問8084下的hello不行localhost:8084/helloTomcat started on port(s): 8084 (http)我們加上項目名,boot02這就起作用了localhost:8084/boot02/hello
package com.learn.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@ResponseBody@RequestMapping("/hello")public String hello() {return "hello";}
}
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @SpringBootApplication 來標注一個主程序類,說明這是一個Sprint Boot應用* @author Leon.Sun**/
//@ImportResource(locations= {"classpath:beans.xml"})
@SpringBootApplication
public class SpringBoot02ConfigApplication {public static void main(String[] args) {// Spring應用啟動起來SpringApplication.run(SpringBoot02ConfigApplication.class,args);}
}
它會形成一個互補配置,高優先級的用高優先級,沒有的使用低優先級,這是非常方便的,我們可以使用高優先級,來覆蓋部分內容,我們低優先級配置所有內容,我們還可以使用spring.config.location來改變默認配置文件位置,這個怎么做呢,如果我們寫到配置文件里邊,你不管寫哪里都是沒啥用的,我來給大家舉個例子,比如我們給某一個盤,我們就是8085端口,我想用8085端口,我們把路徑拿過來spring.config.location=G:/application.properties然后啟動看能不能用到他,如果用到那就是8085端口,那我們看到還是8084,所以指定配置文件的位置,怎么指定呢,我們是在運維的時候,比如我們將項目已經發布了,項目打包了,我們可以使用命令行參數的形式,啟動項目的時候,來指定配置文件的新位置,然后還是一句話,指定的配置文件,和默認加載的這些配置文件,會一起起作用,共同起作用,形成互補配置,我來演示一下這個效果
我們來把項目打包一下,在我們這個maven里邊,打包我們這個項目,我們這個項目打包以后呢,我們看到打包成功,這塊有一個jar,我們直接訪問target目錄,target下有我們的jar包,我現在要執行這個jar包咋執行呢,但是我手動來給你置頂spring.config.location,命令行參數都是--
現在啟動起來在8085端口,那我們就來訪問8085,關鍵我們指定的配置文件也只是端口,而路徑是在低優先級里規定路徑的,能不能起作用呢,也是可以的,這個特性在我們運維的時候,也是非常的好用,比如我們已經把項目打包成功了,但是由于我們再后來運行的時候,可能需要修改一些配置,怎么辦呢,只需要編寫少量的配置,我們把項目重新啟動,讓他們來加載新改的配置,那么項目原來的配置,也會在,我們新改的配置,也會應用上,我們不需要把整個項目打包以后,再運行,這就是我們配置文件的加載位置,從高到低,依次往下加載,然后形成互補配置
?
總結
以上是生活随笔為你收集整理的SpringBoot_配置-配置文件的加载位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot_配置-配置文件占位
- 下一篇: SpringBoot_配置-外部配置加载