1、Spring Boot 工程基本結構說明
src/main/java 主程序入口
src/main/resources 配置目錄,其中引入web模塊,將生成static(靜態資源目錄)和templates(模板文件目錄)
src/test 單元測試目錄
2、spring Boot 啓動方式:
1.通過運行擁有main函數的類啓動
2.使用mvn spring-bootrun 命令啓動
3. 通過打包jar包,通過java -jar xxx.jar命令啓動
3、配置詳解
1. Spring Boot 默認配置爲../application.properties,同時Spring Boot還支持YAML文件,properties和yml文件同時存在,應用會優先加載properties配置,如果屬性衝突則以properties爲準,不衝突則以存在爲準
2.自定義配置
除了引用starter模塊預定義配置以爲,還可以在配置文件中自定義參數,如:使用server.port=xxxx指定應用端口,使用spring.application.name=xxxx指定應用名稱(cloud中會被註冊爲服務名),Spring Boot 可以使用@Value註解加載配置,
@Value("${server.port}")
private String port;
@Value註解支持Place Horder表達式,格式爲"${...}"和SpEL表達式,格式爲#{...}
3 .參數引用.
application.properties中參數之間可以使用Place Horder表達式進行引用,如
server.port=1111
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
4. ${random}配置使用,application.properties可以通過${random}來加載隨機數,而不需要通過程序實現。如:
#隨機值
com.eureka-server.key.value=${random.value}
#隨機int值
com.eureka-server.login.number=${random.int}
#隨機long值
com.eureka-server.login.long=${random.long}
#隨機10以內int值
com.eureka-server.login.snum=${random.int(10)}
#隨機10到20之間int值
com.eureka-server.login.bnum=${random.int[10,20]}
5. 命令行參數
Spring Boot 支持通過命令行參數來修改屬性,如:java -jar xxx.jar --server.port=1111
6. 多環境配置
Spring Boot實現多環境配置主要有兩種方式,application-{profile}.properties和application.yml配置的spring.profile屬性來定義多個環境的屬性配置。
使用命令行參數激活不同環境配置,ava -jar xxx.jar --spring.profile.active={profile}
7. 配置加載順序
命令行參數->SPRING_APPLICTION_JSON->java:comp/evn中的JNDI屬性->java系統屬性->操作系統環境變量->通過random.*配置的隨機屬性->位於jar包外的properties和yml配置文件->位於jar包內的properties和yml配置文件->@Configuration註解修飾類的@PropertySource註解修飾的屬性->應用默認屬性,通過SpringApplication.setDefaultProperties定義的屬性,優先級從高到低。