Spring boot 基礎配置
前言
上一篇文章介紹瞭如何開啟spring boot,這篇文章將介紹spring boot的一些基本配置,通過這篇文章,你將知道:spring boot全域性配置、配置檔案的優先順序、如何讀取自定義配置檔案、如何通過命令列方式執行、如何定製Banner等
定製Banner
Spring Boot專案在啟動的時候會有一個預設的啟動圖案:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
只需要在src/main/resources目錄下新建banner.txt檔案,把我們自己的圖案複製進去,就能自定義這個圖案,當然可以通過網站:http://patorjk.com/software/taag/ 一鍵生成,我們使用Aurora生成,效果如下
配置檔案的優先順序
application.properties和application.yml檔案可以放在以下四個位置:
- 外接,在相對於應用程式執行目錄的/congfig子目錄裡。
- 外接,在應用程式執行的目錄裡
- 內建,在config包內
- 內建,在Classpath根目錄
如果你在相同優先順序位置同時有application.properties和application.yml,那麼application.properties裡的屬性裡面的屬性就會覆蓋application.yml
測試:在resources目錄下分別新建application.properties和application.yml,指定埠啟動
application.properties內容
server. port=8081
application.yml內容
server:
port: 8080
啟動服務,可以看到spring boot載入的是application.properties的內容
自定義屬性的讀取
有時候專案需要用到自定義的屬性,在application.properties中定義
me.zhengjie.name=zhengjie
me.zhengjie.pass=123456
使用@Value(value=”${屬性名稱}”),將值繫結到相應屬性上,並且在啟動類中加入控制器,使其可以直接訪問,如:
@RestController
@SpringBootApplication
public class SpringbootDeployApplication {
@Value("${me.zhengjie.name}")
private String name;
@Value("${me.zhengjie.pass}")
private String pass;
@GetMapping("/")
public String index(){
return "name:"+name+",pass:"+pass;
}
public static void main(String[] args) {
SpringApplication.run(SpringbootDeployApplication.class, args);
}
}
啟動專案,訪問http://localhost:8081,頁面顯示如下:
在屬性非常多的情況下,也可以定義一個和配置檔案對應的Bean:
通過註解@ConfigurationProperties(prefix=“me.zhengjie”)指明瞭屬性的通用字首,通用字首加屬性名和配置檔案的屬性名對應。
@Component
@ConfigurationProperties(prefix="me.zhengjie")
public class MyProperties {
private String name;
private String pass;
// get,set略
}
在之前的啟動類中,注入該Bean,即可獲取屬性值
@Autowired
private MyProperties myProperties;
@GetMapping("/test")
public String index1(){
return "name:"+myProperties.getName()+",pass:"+myProperties.getPass();
}
啟動專案,訪問http://localhost:8081/test,頁面顯示如下
屬性間的引用
在application.properties配置檔案中,各個屬性可以相互引用,如下:
me.zhengjie.name=zhengjie
me.zhengjie.pass=123456
me.zhengjie.nameAndPass=${me.zhengjie.name}--${me.zhengjie.pass}
自定義配置檔案
在src/main/resources路徑下新建一個application-test.properties配置檔案
me.zhengjie.test=test
定義一個對應的Bean
@Configuration
@ConfigurationProperties(prefix="me.zhengjie")
@PropertySource("classpath:application-test.properties")
@Component
public class MyTestProperties {
private String test;
// get,set略
}
註解@PropertySource(“classpath:application-test.properties”)指明瞭使用哪個配置檔案
命令列方式執行
通過命令列的方式執行spring boot程式
java -jar xx.jar --使用預設的配置檔案
執行外部配置檔案
java -Dspring.config.location=E:\resources\xx.properties -jar xx.jar
修改埠號
java -jar xx.jar --server.port=8888
專案原始碼
github:https://github.com/dqjdda/SpringBoot_All
碼雲:https://gitee.com/hgpt/SpringBoot_All
開源後臺管理系統:
歡迎體驗 Aurora
github: https://github.com/dqjdda/Aurora