springboot 是習慣優於配置,拋棄SSM中繁瑣的配置內容,大量的基礎配置由框架的完成。所以我們現在沒有用任何的配置檔案,可以快速的將專案執行起來。
我們找到web模組中的application.properties檔案 這是一個全域性的配置檔案,存放於專案的中resources目錄中。配置檔案支援properties檔案和yml檔案。yml檔案的層級語法更要清晰寫。
我們來刪除專案中的application.properties的檔案(如果專案中存在的話),新建一個application.yml檔案,修改檔案內容如下
1 server: 2 port: 8001
重新啟動專案,訪問http://localhost:8001/getlist
注意下語法
1 yml層級介面,第二行的內容要加上一個tab鍵
2 第二行的:後邊要加上一個空格 然後在去寫上內容
我們會看到 正確的返回了JSON內容,而8080已經不能訪問。這就是習慣優於配置,框架預設給我們的設定一個啟動埠,不需要我們再去指定埠,但是我們依然可以重新配置來覆蓋預設的內容。
自定義配置
有時候我們需要配置一些資訊常量值
我們再次修改application.yml檔案,內容如下
1 server: 2 port: 8001 3 4 test: 5 test1: 哈哈 6 test2: 123456
修改Testcontroller中的程式碼,將我們寫好的配置內容繫結到欄位上,內容如下
1 @RestController 2 public class Testcontroller { 3 4 @Autowired 5 TestService testService; 6 7 @Value("${test.test1}") 8 private String test1; 9 10 @Value("${test.test2}") 11 private String test2; 12 13 @GetMapping("/sayhello") 14 public String sayHello() { 15 return "Hello Word"; 16 } 17 18 @GetMapping("/getlist") 19 public List<TestDto> getlist(){ 20 return testService.getTestList(); 21 } 22 23 @GetMapping("/gettest") 24 public String gettest(){ 25 return test1+test2; 26 } 27 }
訪問http://localhost:8001/gettest
看到返回值:哈哈123456
說明我們的配置檔案已經生效了
多配置環境
一般我們在開發的過程中,不同的環境需要不同的配置檔案。比如我們 資料庫連線字串,正式和測試,和開發環境中的都不一樣
我們先建立三個檔案
application-dev.yml 本地開發環境的配置檔案
application-testyml 測試環境中的配置檔案
application-prod.yml 正式環境的配置檔案
我們再次修改這些內建檔案內容如下
application.yml檔案
1 server: 2 port: 8001 3 4 spring: 5 profiles: 6 active: dev
application-dev.yml
1 test: 2 test1: 開發環境 3 test2: 123456
application-prod.yml
1 test: 2 test1: 正式環境 3 test2: 123456
application-test.yml
1 test: 2 test1: 測試環境 3 test2: 123456
我們重新執行專案 訪問http://localhost:8001/gettest
我們會看到返回值 :開發環境123456
我們再次修改active值為 test
再次訪問 http://localhost:8001/gettest
我們會看到返回值 : 測試環境123456
說明我們修改的多環境已經生效了
我們在按照上一篇文章的方式進行專案打包
切換到web的tartget目錄中執行命令
java -jar somefun-web-0.0.1-SNAPSHOT.jar –spring.profiles.active=prod
我們再次訪問 http://localhost:8001/gettest
會發現返回內容:正式環境123456
同樣的我們也可以在命令列中指定其他的環境引數值
這裡只是列舉了一些簡單的使用方式,更加詳細的配置內容可以關注SpringBoot官方文件https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/