一步步學(xué)習(xí) 《Spring 實(shí)戰(zhàn) 第5版》--(2)創(chuàng)建第一個(gè)例子

在這部分,會(huì)創(chuàng)建一個(gè)最簡(jiǎn)單的Spring例子。通過(guò)這個(gè)例子,來(lái)具體講解Spring項(xiàng)目的架構(gòu)。

一、 創(chuàng)建Spring項(xiàng)目

我們選擇在Ideal中創(chuàng)建Spring項(xiàng)目。

首先在New project中選擇 Spring Initalizr,Spring Initalizr是一個(gè)基于瀏覽器的Web應(yīng)用,同時(shí)是一個(gè)開(kāi)放的Rest API,可以通過(guò)它來(lái)初始化應(yīng)用。

Ideal中創(chuàng)建Spring.jpg

在下一步中設(shè)定項(xiàng)目的相關(guān)信息,可以采用默認(rèn)值。

Ideal中創(chuàng)建Spring(2).jpg

下一步中指定Spring項(xiàng)目所需的依賴。對(duì)于所選的依賴,都是默認(rèn)選擇的最新版本。我們選擇的依賴如下。

Ideal中創(chuàng)建Spring(3).jpg

最后就是指定項(xiàng)目地址。點(diǎn)擊結(jié)束完成項(xiàng)目構(gòu)建。

項(xiàng)目創(chuàng)建好后,依賴下載需要較長(zhǎng)時(shí)間,請(qǐng)耐心等待。

二、 項(xiàng)目結(jié)構(gòu)

新建項(xiàng)目的結(jié)構(gòu)如圖。


項(xiàng)目結(jié)構(gòu).jpg

可以見(jiàn)到這是一個(gè)典型的Maven項(xiàng)目。包括了source、resources和test幾個(gè)類型的包,還有比較常用的pom.xml文件,用于配置項(xiàng)目的構(gòu)建和依賴等。

《spring實(shí)戰(zhàn)》中對(duì)pom文件進(jìn)行了說(shuō)明,對(duì)于構(gòu)建配置,其中特別提到對(duì)于應(yīng)用于云平臺(tái)的應(yīng)用,推薦打包為jar格式,對(duì)于傳統(tǒng)的java服務(wù)器應(yīng)用,一般打包為war包。

在 DemoApplication 主類和 已經(jīng)給出了部分代碼,盡管目前我們還沒(méi)有做任何編碼,沒(méi)有實(shí)現(xiàn)任何功能,但項(xiàng)目已經(jīng)可以啟動(dòng)了。這是spring boot的強(qiáng)大之處。

DemoApplicationTests也已經(jīng)給出了部分測(cè)試代碼,能夠用它來(lái)模擬一個(gè)測(cè)試環(huán)境,對(duì)主程序代碼開(kāi)展測(cè)試工作。

三、 主要類說(shuō)明

1. 主類的說(shuō)明

目前在主類中,代碼很少,只有一個(gè)用于啟動(dòng)項(xiàng)目的main方法。但在spring boot中,整合了一個(gè)很強(qiáng)大的注解,就是@SpringBootApplication。

@SpringBootApplication 注解在spring boot中整合了三個(gè)以前版本常用的注解,分別是:

(1) @SpringBootConfiguration:聲明這個(gè)類是配置類。

(2) @EnableAutoConfiguration:啟動(dòng)Spring boot 的自動(dòng)配置。spring boot會(huì)自動(dòng)配置可能會(huì)用到的組件。

(3) @ComponentScan: 啟動(dòng)組件掃描。這是個(gè)很有用的注解,它可以使Spring 掃描帶有 @Component、@Controller、@Service 這樣的聲明類,spring會(huì)自動(dòng)將這些類注冊(cè)。

在main方法中,調(diào)用了SpringApplication類的run()方法,啟動(dòng)了應(yīng)用程序。

2. 測(cè)試類的說(shuō)明

Spring Initializr 提供了測(cè)試類,用于自動(dòng)化測(cè)試。

DemoApplicationTests.jpg

自動(dòng)化測(cè)試是現(xiàn)代軟件開(kāi)發(fā)的必然要求,是保證代碼質(zhì)量的基本手段。SpringBoot在此方面提供了很多便利。

可以點(diǎn)擊IDE左側(cè)的run test按鈕,試著運(yùn)行這個(gè)測(cè)試??梢钥吹竭@個(gè)測(cè)試加載了上下文環(huán)境,并且測(cè)試已經(jīng)成功。

運(yùn)行測(cè)試.jpg

目前這個(gè)測(cè)試類什么都沒(méi)做,只是通過(guò)@SpringBootTest注解,來(lái)告訴JUnit在啟動(dòng)的時(shí)候,要加上Spring boot功能。啟動(dòng)測(cè)試后,會(huì)加載Spring 應(yīng)用上下文。

@SpringBootApplication注解.jpg

Junit是java下一個(gè)常用的測(cè)試框架,主要用于java的自動(dòng)化測(cè)試。Spring整合了Junit的功能,另外做了增強(qiáng),能夠通過(guò) @SpringBootTest注解來(lái)啟動(dòng)spring環(huán)境下的自動(dòng)化測(cè)試,后續(xù)將看到這個(gè)注解的威力。

四、 運(yùn)行

目前我們已經(jīng)可以運(yùn)行這個(gè)應(yīng)用程序了。點(diǎn)擊IDE上的運(yùn)行按鈕,在控制臺(tái)中可以看到應(yīng)用啟動(dòng)的日志。Spring boot會(huì)啟動(dòng)自帶的Tomcat容器,提供了應(yīng)用運(yùn)行的環(huán)境。SpringBoot使得我們能夠快速構(gòu)建一個(gè)基本應(yīng)用。

后面我們還是結(jié)合《實(shí)戰(zhàn)》,講解一下Spring的基本概念。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容