更新時(shí)間:2022-07-26 來(lái)源:黑馬程序員 瀏覽量:
在Spring Boot框架出現(xiàn)之前,Java EE開(kāi)發(fā)最常用的框架是Spring,該框架開(kāi)始于2003年,它是由羅德·約翰遜(Rod Johnson)創(chuàng)建的一個(gè)輕量級(jí)開(kāi)源框架。Spring框架是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的,它的出現(xiàn)使得開(kāi)發(fā)者無(wú)須開(kāi)發(fā)重量級(jí)的Enterprise JavaBean(EJB),而是通過(guò)控制反轉(zhuǎn)(IOC)和面向切面編程(AOP)的思想進(jìn)行更輕松的企業(yè)應(yīng)用開(kāi)發(fā),取代了EJB臃腫、低效的開(kāi)發(fā)模式。
雖然Spring框架是輕量級(jí)的,但它的配置卻是重量級(jí)的。Spring的早期版本專(zhuān)注于XML配置,發(fā)一個(gè)程序需要配置各種XML配置文件。為了簡(jiǎn)化開(kāi)發(fā),在Spring 2.x版本開(kāi)始引入少量的注解,如@Component、@Service等。由于支持的注解不是很多且功能尚不完善,所以只能輔助使用。
隨著實(shí)際生產(chǎn)中敏捷開(kāi)發(fā)的需要,以及Spring注解的大量出現(xiàn)和功能改進(jìn),到了Spring4.x版本基本可以脫離XML配置文件進(jìn)行項(xiàng)目開(kāi)發(fā),多數(shù)開(kāi)發(fā)者也逐漸感受到了基于注解開(kāi)發(fā)的便利,因此,在Spring中使用注解開(kāi)發(fā)逐漸占據(jù)了主流地位。與此同時(shí),Pivotal團(tuán)隊(duì)在原有Spring框架的基礎(chǔ)上通過(guò)注解的方式進(jìn)一步簡(jiǎn)化了Spring框架的使用,并基于Spring框架開(kāi)發(fā)了全新的SpringBoot框架,于2014年4月正式推出了Spring Boot 1.0版本,同時(shí)在2018年3月又推出了 Spring Boot 2.0版本。Spring Boot 2.x版本在Spring Boot 1.x版本的基礎(chǔ)上進(jìn)行了諸多功能的改進(jìn)和擴(kuò)展,同時(shí)進(jìn)行了大量的代碼重構(gòu),所以讀者在學(xué)習(xí)開(kāi)發(fā)過(guò)程中,選擇合適的版本也是非常重要的。我們推薦使用優(yōu)化后的Spring Boot2.x版本。
Spring Boot框架本身并不提供Spring框架的核心特性以及擴(kuò)展功能,只是用于快速、敏捷地開(kāi)發(fā)新一代基于Spring框架的應(yīng)用,并且在開(kāi)發(fā)過(guò)程中大量使用“約定優(yōu)先配置”(convention over configuration)的思想來(lái)擺脫Spring框架中各種復(fù)雜的手動(dòng)配置,同時(shí)衍生出了Java Config(取代傳統(tǒng)XML配置文件的Java配置類(lèi))這種優(yōu)秀的配置方式。也就是說(shuō),Spring Boot并不是替代Spring框架的解決方案,而是和Spring框架緊密結(jié)合用于提升Spring開(kāi)發(fā)者體驗(yàn)的工具,同時(shí) Spring Boot還集成了大量常用的第三方庫(kù)配置(例如Jackson、JDBC、Redis、Mail等)。使用Spring Boot開(kāi)發(fā)程序時(shí),幾乎是開(kāi)箱即用(out-of-the-box),大部分Spring Boot應(yīng)用只需少量配置就能完成相應(yīng)的功能,這一特性進(jìn)一步促使開(kāi)發(fā)者專(zhuān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。
另外,隨著近幾年微服務(wù)開(kāi)發(fā)需求的迅速增加,怎樣快速、簡(jiǎn)便地構(gòu)建一個(gè)準(zhǔn)生產(chǎn)環(huán)境的Spring應(yīng)用也是擺在開(kāi)發(fā)者面前的一個(gè)難題,而Spring Boot框架的出現(xiàn)恰好完美地解決了這些問(wèn)題,同時(shí)其內(nèi)部還簡(jiǎn)化了許多常用的第三方庫(kù)配置,使得微服務(wù)開(kāi)發(fā)更加便利,這也間接體現(xiàn)了Spring Boot框架的優(yōu)勢(shì)和學(xué)習(xí)Spring Boot的必要性。