來(lái)源:北大青鳥(niǎo)總部 2023年03月10日 13:29
在這個(gè)技術(shù)百花齊放、快速更迭的時(shí)代,程序猿們?yōu)榱四芨霞夹g(shù)的推陳出新的節(jié)奏,紛紛熬沒(méi)了頭發(fā)
對(duì)于Java程序猿來(lái)講更是深有體會(huì),Java語(yǔ)言作為服務(wù)器端的“王者”,隨著互聯(lián)網(wǎng)的發(fā)展,為了滿足跟中五花八門(mén)的業(yè)務(wù),衍生出的各種框架,中間件技術(shù)等,這不最近又出來(lái)了一個(gè)的技術(shù),不過(guò)這個(gè)技術(shù)不僅沒(méi)有讓程序猿們想要逃離,而是對(duì)它喜愛(ài)有加,它就是SpringBoot。
它的出現(xiàn)讓程序猿們徹底的解放了雙手,把所有的精力都投入到業(yè)務(wù)當(dāng)中去。今天咱么就來(lái)好好說(shuō)道說(shuō)道。
Spring: the source for modern java
Spirng: 現(xiàn)代java的起源
在正式開(kāi)始介紹SpringBoot之前呢,首先必須要介紹下Spirng框架,相信所有的Java工程師對(duì)它應(yīng)該比對(duì)自己的女朋友都要了解。
Spring是一個(gè)開(kāi)源框架,Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架,Spring是模塊化的,允許你只是使用其中的一部分,不需要引入其他的。Spring設(shè)計(jì)為非侵入式的,意味著你的邏輯代碼不依賴(lài)與框架本身。
曾幾何時(shí)就在兩年前,也許你還在用著SSH(Struts2、Spring、Hibernate)或者SSM(SpringMVC、Spring、Mybatis)框架,以為三大法寶在手,天下我有。
雖然他們都擁有這繁瑣的配置,經(jīng)常因?yàn)槟涿畹呐渲脝?wèn)題,導(dǎo)致整個(gè)服務(wù)出現(xiàn)問(wèn)題;但是最為一名專(zhuān)業(yè)的程序猿,我們依然樂(lè)此不疲的快樂(lè)coding
然而突然有一天,空中好像劃過(guò)一道閃電--SpringBoot,它仿佛是廣大程序猿的救星,從此程序猿們?cè)僖膊挥闷措p手速了,過(guò)上了神仙眷侶的生活
SpringBoot是由Pivotal團(tuán)隊(duì)在2013年開(kāi)始研發(fā)、2014年4月發(fā)布第一個(gè)版本的全新開(kāi)源的輕量級(jí)框架。它基于Spring4.0設(shè)計(jì),不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過(guò)簡(jiǎn)化配置來(lái)進(jìn)一步簡(jiǎn)化了Spring應(yīng)用的整個(gè)搭建和開(kāi)發(fā)過(guò)程。另外SpringBoot通過(guò)集成大量的框架使得依賴(lài)包的版本沖突,以及引用的不穩(wěn)定性等問(wèn)題得到了很好的解決。通過(guò)這種方式,SpirngBoot致力于在蓬勃發(fā)展的快速應(yīng)用開(kāi)發(fā)領(lǐng)域成為領(lǐng)導(dǎo)者。
需要說(shuō)明的是Spring Boot并不是一個(gè)框架,從本質(zhì)上講,它就是一堆技術(shù)的集合,因?yàn)樘峁┝嘶A(chǔ)的平臺(tái),任何技術(shù)想要集成進(jìn)來(lái)只需要添加依賴(lài)即可。
首先我們先看下SpringBoot有哪些特點(diǎn),足以讓我們的廣大程序員為之傾倒
創(chuàng)建獨(dú)立的Spring應(yīng)用程序
嵌入式的Tomcat,Jetty或Undertow(無(wú)需部署WAR文件)
提供基礎(chǔ)的“Sstater”入門(mén)依賴(lài)項(xiàng),以簡(jiǎn)化構(gòu)建配置
盡可能自動(dòng)配置Spring和3rd Party庫(kù)
完全沒(méi)有代碼生成,也不需要XML配置
....
以上任何一個(gè)特點(diǎn)都足以讓我們?yōu)橹d奮,特別是嵌入式的Tomcat、不需要任何XML的配置。簡(jiǎn)直就是專(zhuān)為Java程序員而生,Java程序員苦xml久已。
當(dāng)我們?cè)谶M(jìn)行傳統(tǒng)的SSM開(kāi)發(fā)的時(shí)候,會(huì)有一些比較繁瑣的步驟
配置web.xml、Spring.xml的配置和SpringMVC.xml
配置數(shù)據(jù)源、事物、注解驅(qū)動(dòng)
配置加載配置文件等
。。。
所有的這一切,在使用SpringBoot的時(shí)候都可以完全和他們Say goodbye了,接下來(lái)就讓我們進(jìn)入SpringBoot的世界。
剛才把SpringBoot從里到外夸了一遍,接下來(lái)就是”見(jiàn)證奇跡的時(shí)刻“
直接File --> New --> Project創(chuàng)建一個(gè)項(xiàng)目
選擇Spring Initalizr通過(guò)SpringBoot官方提供的項(xiàng)目模板構(gòu)建
這里直接填下maven坐標(biāo),打包方式必須選擇jar,jdk版本8以上,其他報(bào)名項(xiàng)目名可以自己改
這里我們選擇web依賴(lài),因?yàn)槲覀円獦?gòu)建一個(gè)web項(xiàng)目,其實(shí)就是把SpringMVC的相關(guān)的依賴(lài)加入進(jìn)來(lái),這樣我們就可以直接使用SpringMVC了,不在需要額外的配置
填寫(xiě)項(xiàng)目名稱(chēng),點(diǎn)擊Finish完成
這里會(huì)默認(rèn)生成的SpringBoot項(xiàng)目我可以看到SpringBoot最標(biāo)準(zhǔn)的結(jié)構(gòu)
? 主程序也會(huì)默認(rèn)生成了,我們只需要我們自己的邏輯
? resources文件夾中目錄結(jié)構(gòu)
– static:保存所有的靜態(tài)資源; js/css/ images等文件
– templates:保存所有的模板頁(yè)面 ,模板引freemarker、thymeleaf
– application.properties:Spring Boot應(yīng)用的配置文件;可以修改一些默認(rèn)設(shè)置,如:默認(rèn)的端口是8080
我們來(lái)看下他的pom.xml文件里比較重要的幾個(gè)依賴(lài),
起步依賴(lài),包含了很多基礎(chǔ)的依賴(lài)項(xiàng),
web依賴(lài),這個(gè)就相當(dāng)于把SpringMVC加進(jìn)來(lái)
<parent> <!--SpringBoot起步依賴(lài),任何SpringBoot工程都有--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte-rparent</artifactId> <version>2.1.5.RELEASE</version> </parent> <dependency> <!--構(gòu)建web工程需要的依賴(lài)--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> |
接下來(lái)我們就來(lái)寫(xiě)一個(gè)Controller來(lái)體驗(yàn)一下SpringBoot簡(jiǎn)單
/** * SpringBoot之初體驗(yàn) */ @RestController public class DemoController { @GetMapping("/hello") public String hello() { return "Hello SpringBoot?。?!"; } } |
直接運(yùn)行主啟動(dòng)類(lèi)
當(dāng)你看到如下的畫(huà)面,就說(shuō)明你的SpringBoot工程已經(jīng)啟動(dòng)成功了
接下來(lái)我們就來(lái)測(cè)試一下吧,當(dāng)我們看到瀏覽器給我們的響應(yīng)時(shí),就說(shuō)明我們的項(xiàng)目成功了。此時(shí)端口默認(rèn)是8080
是不是很簡(jiǎn)單呢,構(gòu)建一個(gè)web就需要添加一個(gè)web依賴(lài)就可以了。媽媽再也不用擔(dān)心我的頭發(fā)了
這次內(nèi)容主要給大家科普下SpringBoot的前世今生,以及它的特點(diǎn)和優(yōu)勢(shì),最后通過(guò)一個(gè)SpringBoot的demo演示了如何去構(gòu)建一個(gè)簡(jiǎn)單的SpringBoot工程。讓大家體驗(yàn)了一下SpringBoot的快速構(gòu)建項(xiàng)目的能力。