第一次聽到這個說法還是在學習springboot時,剛開始的時候只是知道在程式的世界中有這個說法,也沒有去深究它的意思。
約定?
對於我們人來說,能夠滿足大多數人的習慣的約定就是一種好的約定,而在程式中,能夠簡化程式碼的實現,使程式碼高可用的約定就是一種好的約定。
約定大於配置
其實在開發中,處處都用到了“約定大於配置”這一思想
- 就是在開發中,如果有些值你沒有配置的話,那程式會取一個預設值,換句話說,能取預設值的配置,就不需要配置了,這個預設值就是約定。
- 約定可以減少很多配置
比如說在maven的結構中:
- /src/main/java目錄用來存放java原始檔
- src/main/resources目錄用來存放資原始檔,如application.yml檔案,mybatis的*mapper.xml檔案
- /src/test/java目錄用來存放java測試檔案
- /src/test/resources目錄用來存放測試資原始檔
- /target目錄為專案的輸出位置
- 其實呢,maven為你做了很多事情,只是它都對使用者隱藏了起來,你只需要遵循它的約定即可
- 約定大於配置是一個簡單的概念。系統,類庫,框架假定其合理的預設值,而非要求提供不必要的配置。在大部分情況下,使用框架提供的預設值會讓專案執行的更快。
在springboot中,只要匯入了web-stater,spring mvc、json、spring核心容器等web場景需要的所有依賴都會匯入,並控制好版本
spring boot的理念就是約定大於配置,在spring boot中提供了一套預設配置,不需要手動去寫xml配置檔案,只有預設配置不能滿足我們的需求時,才會去修改配置。