如何理解 SpringBoot 中的約定優於配置

業餘草發表於2019-04-29

點選上方“業餘草”,選擇“置頂公眾號”

第一時間獲取技術乾貨和業界資訊!

640?wx_fmt=png

640?wx_fmt=png

大約是兩年前,有同事給我說到,SpringBoot 中約定優於配置是什麼意思?是不需要配置嗎?不需要配置問什麼還有配置檔案?

640

關於這個問題,我相信也困擾著不少人,而面試中也有不少人會被問到。今天抽個時間,我們一起來討論討論,如何理解這句話!

約定優於配置,也有很多人解讀為:約定大於配置,約定好於配置,習慣大於配置等。但它們都表明了一個意思,並不是說零配置。或者說零配置並不是完全沒有配置,而是通過約定來減少配置。

約定優於配置是一個簡單的概念。系統,類庫,框架應該假定合理的預設值,而非要求提供不必要的配置。在大部分情況下,你會發現使用框架提供的預設值會讓你的專案開發起來效率更快。

約定優於配置。並不是一個新套路,新技術,新思想。而是原來就一直存在的,SpringBoot 只不過是把它放大了,並真正的做到了約定優於配置。

比如,我們在日常開發過程中。你有一個 xttblog 表,那麼可能就對應的有一個 Xttblog 的實體類。這其實就是一種約定。

在 SpringBoot 中,當我們匯入一個 spring-boot-starter-web 後。就會自動的幫我們匯入 Spring MVC 的相關依賴(包括 Json 支援的 Jackson 和資料校驗的 Hibernate Validator)和一個內建的 Tomcat 容器,這使得在開發階段可以直接通過 main 方法或是 JAR 包獨立執行一個 WEB 專案。

SpringBoot 約定,當你匯入 spring-boot-starter-web 後,就約定了你是一個 web 開發環境。當你是一個 web 環境,就約定了你會使用 SpringMVC(Struts2 之類的就拜拜了,因為不是親生的,而且確實沒 SpringMVC 使用率高)。至於其它的也約定你會需要,都給你預設匯入進來。當你覺得不合適的時候,可以用更少的改動,滿足你的需要。

Spring 在推動“約定優於配置”這一設計理念,從 Spring 的註解版本就已經開始了。引入註解就是為了減少一些預設配置,引入註解也就代表著簡化配置的開始,官方說基於 spring 的基礎就是這個事實。

SpringBoot 約定以 starter 的形式減少依賴,於是相繼推出了不少常用的 starter。

約定優於配置。在我們的實際生活中也有體現。比如,我們約定靠右行駛,我們約定從小右手拿筷子等。正是 SprigBoot 的小“約定”,大作用,才讓越來越多的人愛上它。

640

10T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,GO等等。在公眾號內回覆對應關鍵字或框架名字,即可免費獲取!!

640?wx_fmt=png

 你再主動一點點 640?  我們就有故事了

相關文章