個人博客:蘭陵笑笑生,歡迎瀏覽博客!html
上一章 SpringBoot入門實踐(一)-快速入門當中,咱們快速的新建了一個SpringBoot工程,實現了瀏覽器請求一個路徑,要求運行的服務返回指定的結果。本章我將整理一篇關於配置文件的介紹。java
咱們開發的項目少不了各類各樣的配置,在以往我使用過靜態的類來放一些項目中使用到的一些配置值。也使用過properties 文件存儲一些值。固然這些都是能夠的。SpringBoot建議咱們採用yml這樣的文件來存儲。說到YAML網上有不少的介紹,咱們只要記住YAML文件具備很強的表達能力和擴展性就夠了。對,就是容易讀懂。還記得咱們生成的項目結構麼? 在項目resource目錄下:會有一個 application.properties 文件。固然咱們能夠修改爲application.yml文件。spring
springBoot的端口配置,springBoot項目的默認端口是8080,即若是咱們不在配置文件中配置,那麼端口就是8080.咱們將端口修改爲8081數據庫
server: port: 8081
基本語法:K-V 鍵-值對方式,port是鍵,8081是值。以空格的縮進來表示層級關係。數組
即port是server下的port。屬性和值存在大小寫敏感的。瀏覽器
值默認是不用加」」 號的,加了雙引號不轉義字符串的特殊字符。單引號,會轉義字符串的特殊字符。緩存
在開發的時候,咱們常常爲一些對象配置一些值。好比以User類爲例:app
/** * @Component 表示 springBoot會啓動加載這個類,必須是一個組件才能獲取配置文件的值。 * @ConfigurationProperties 綁定YMAL的配置到該類上。 * prefix 表示在配置文件中去:user開頭的 */ @Component @ConfigurationProperties(prefix = "user") public class User { private String userName; private int age; private Map<String,Object> maps; private List<Object> lists; ..... }
application.yml配置spring-boot
server: port: 8081 user: userName: 王寶強 age: 48 maps: { k1:v1,k2:v2 } lists: - 馬蓉 - hello 樹先生
測試一下測試
@Controller public class HelloController { @Autowired User user; @ResponseBody @RequestMapping("/user") public User user(){ return user; } }
除了給JAVA bean注入屬性外,咱們還能夠經過@value獲取數據。
@Controller public class YAMLTest { @Value("${user.userName}") private String userName; @ResponseBody @RequestMapping("/test1") public String test1(){ return "姓名:"+userName; } }
測試結果
在實際的項目開發中,以上兩種方式都常常用到。
spring: profiles: active: dev
用來切換配置文件的:
咱們能夠在resource目錄下分別在添加applicaition-dev.yml和application-test.yml
在開發中在不一樣的環境下咱們的配置屬性值是不一樣的,好比數據庫的配置,若是手動切換實在是太麻煩了,爲此springBoot提供了這樣一個特別實用的功能,經過spring.profiles.active這樣的屬性來切換環境,注意名稱必須是application-{名稱}.yml 或
application-{名稱}.properties 文件
spring: application: name: helloApp
用來描述應用程序的名稱的。
在整個springBoot系列中,有不少配置,這裏只是簡單的列舉了2個,在實際的開發中,包括數據庫配置、日誌配置、緩存配置,自定義配置等很是之多,配置的貢獻主要來自於不一樣的jar中,以具體的jar項目爲準。
咱們能夠參考springBoot的官方網站:官方網址,這裏有不少的配置信息。這裏面有不少介紹。
本文由博客一文多發平臺 OpenWrite 發佈!
個人博客地址蘭陵笑笑生,歡迎瀏覽!