一晴楔、約定優(yōu)于配置
約定優(yōu)于配置(Convention Over Configuration),也稱作按約定編程是一種軟件設(shè)計(jì)范式宫静。目的在于減少軟件開發(fā)人員所需要做出的決定的數(shù)量丢氢,從而獲得簡(jiǎn)單的好處,而又不失去其中的靈活性裂允。開發(fā)人員僅僅需要規(guī)定應(yīng)用中不符合約定的部分廓旬。例如际插,如果模型中有個(gè)名為Sale的類碘耳,數(shù)據(jù)庫中對(duì)應(yīng)的表就會(huì)默認(rèn)命名為sales。只有在偏離這一約定的時(shí)候,比如將該表命名為"products_sold"框弛,才會(huì)需要寫有關(guān)這個(gè)名字的配置辛辨。如果所用工具的約定與你的期待相符,便可省去配置;反之愉阎,你可以配置來達(dá)到你所期待的方式绞蹦。
比如平時(shí)架構(gòu)師搭建項(xiàng)目就是限制軟件開發(fā)隨便寫代碼,制定出一套規(guī)范榜旦,讓開發(fā)人員按統(tǒng)一的要求進(jìn)行開發(fā)編碼測(cè)試之類的幽七,這樣就加強(qiáng)了開發(fā)效率與審查代碼效率。所以說寫代碼的時(shí)候就需要按要求命名溅呢,這樣統(tǒng)一規(guī)范的代碼就有良好的可讀性與維護(hù)性了澡屡。
補(bǔ)充:約定優(yōu)于配置也被稱為習(xí)慣優(yōu)于配置、約定大于配置
二咐旧、Spring Boot中的約定優(yōu)于配置
Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架驶鹉,其設(shè)計(jì)目的是用來簡(jiǎn)化新 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置铣墨,從而使開發(fā)人員不再需要定義樣板化的配置室埋。spring Boot采用約定優(yōu)于配置的方式,大量的減少了配置文件的使用
spring-boot-starter-web 包含了 Spring MVC 的相關(guān)依賴(包括 Json 支持的 Jackson 和數(shù)據(jù)校驗(yàn)的 Hibernate Validator)和一個(gè)內(nèi)置的 Tomcat 容器伊约,這使得在開發(fā)階段可以直接通過 main方法或是 JAR 包獨(dú)立運(yùn)行一個(gè) WEB 項(xiàng)目姚淆。而在部署階段也可以打成 WAR 包放到生產(chǎn)環(huán)境運(yùn)行。
三屡律、這是新的技術(shù)新的思想么腌逢?
并不是,在JDK5.0發(fā)布超埋,采用元數(shù)據(jù) 搏讶,引入注解的概念(也稱之為標(biāo)注),就代表簡(jiǎn)化配置的開始霍殴,就是初期的一種 “約定優(yōu)于配置” 的體現(xiàn)媒惕;這么看來,Spring Boot 并不是什么新的技術(shù)来庭,官方說基于Spring 的基礎(chǔ)妒蔚,沒錯(cuò)確實(shí)基于Spring的基礎(chǔ),細(xì)粒度的劃分無非就是注解完成減少配置巾腕,快速搭建項(xiàng)目的框架工具罷了;
許多新的框架使用了約定優(yōu)于配置的方法絮蒿,包括:Spring尊搬,Ruby on Rails,Kohana PHP土涝,Grails佛寿,Grok,Zend Framework,CakePHP冀泻,symfony常侣,Maven,ASP.NET MVC弹渔,Web2py(MVC)胳施,Apache Wicket。