如何理解 SpringBoot 中的約定優於配置
點選上方“業餘草”,選擇“置頂公眾號”
第一時間獲取技術乾貨和業界資訊!
大約是兩年前,有同事給我說到,SpringBoot 中約定優於配置是什麼意思?是不需要配置嗎?不需要配置問什麼還有配置檔案?
關於這個問題,我相信也困擾著不少人,而面試中也有不少人會被問到。今天抽個時間,我們一起來討論討論,如何理解這句話!
約定優於配置,也有很多人解讀為:約定大於配置,約定好於配置,習慣大於配置等。但它們都表明了一個意思,並不是說零配置。或者說零配置並不是完全沒有配置,而是通過約定來減少配置。
約定優於配置是一個簡單的概念。系統,類庫,框架應該假定合理的預設值,而非要求提供不必要的配置。在大部分情況下,你會發現使用框架提供的預設值會讓你的專案開發起來效率更快。
約定優於配置。並不是一個新套路,新技術,新思想。而是原來就一直存在的,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 的小“約定”,大作用,才讓越來越多的人愛上它。
10T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,GO等等。在公眾號內回覆對應關鍵字或框架名字,即可免費獲取!!
你再主動一點點 我們就有故事了
相關文章
- 約定大於配置
- 【面試普通人VS高手系列】Spring Boot的約定優於配置,你的理解是什麼?面試Spring Boot
- 什麼是“約定大於配置”
- SpringBoot 如何解析配置檔案中的list?Spring Boot
- 如何在SpringBoot中設定TLS? |BaeldungSpring BootTLS
- SpringBoot自動配置原理解析Spring Boot
- mybatis:在springboot中的配置MyBatisSpring Boot
- SQLServer索引優化(2):對於索引中include的理解SQLServer索引優化
- springboot中圖示的定製Spring Boot
- 關於springboot如何做一個定時任務Spring Boot
- SpringBoot-04-自動配置原理再理解Spring Boot
- SpringBoot中配置外部TomcatSpring BootTomcat
- 關於SpringBoot的外部化配置使用記錄Spring Boot
- 基於 SpringBoot2.0+優雅整合 SpringBoot+MybatisSpring BootMyBatis
- 基於SpringBoot2.0+優雅整合SpringBoot+MybatisSpring BootMyBatis
- SpringBoot是如何載入配置檔案的?Spring Boot
- 如何實現自己的SpringBoot自動配置Spring Boot
- SpringBoot配置檔案及自動配置原理詳解,這應該是SpringBoot最大的優勢了吧Spring Boot
- 如何用 SpringBoot 優雅的寫程式碼Spring Boot
- SpringBoot2.4.0中嵌入式servlet容器的自動配置以及啟動原理(自我理解)Spring BootServlet
- springboot定時任務優雅退出方案Spring Boot
- SpringBoot基於註解方式配置FilterSpring BootFilter
- Springboot專案中 如何獲取@Configuration註解標註的配置類Spring Boot
- 如何設定weblogic的nodemanger配置Web
- Logback詳細整理,基於springboot的日誌配置Spring Boot
- SpringBoot2.x入門教程:理解配置檔案Spring Boot
- 關於CSS中設定overflow屬性的值為hidden的相關理解CSS
- 配置SpringBoot-應用配置如何被載入Spring Boot
- 關於equals()和hashcode()的一些約定
- SpringBoot專案中獲取配置檔案的配置資訊Spring Boot
- springboot如何優雅的獲取前端引數Spring Boot前端
- SpringBoot如何優雅的使用@ResponseBody返回圖片Spring Boot
- Vue專案釋出到springboot中的系列配置VueSpring Boot
- springboot怎麼載入yml中的配置項Spring Boot
- springboot超級詳細的日誌配置(基於logback)Spring Boot
- SpringBoot 專案中配置多個 Jackson 的 ObjectMapper ,以及配置遇到的坑Spring BootObjectAPP
- 如何在 Linux 中配置基於金鑰認證的 SSHLinux
- springboot如何使用自定義配置檔案Spring Boot