本文作者為小楊同學(xué),。 maven設(shè)置 將maven倉(cāng)庫設(shè)置為阿里云倉(cāng)庫,,不然依賴會(huì)下載很慢(親身體驗(yàn)過,兩個(gè)小時(shí)左右,,而且還會(huì)超時(shí),所以在創(chuàng)建項(xiàng)目前,,一定要先設(shè)置好maven),。 settings.xml 創(chuàng)建springboot項(xiàng)目:基本設(shè)置 引入項(xiàng)目依賴 項(xiàng)目依賴可以在項(xiàng)目創(chuàng)建后,在pom.xml中配置,。也可以在項(xiàng)目創(chuàng)建時(shí)引入,。 Developer Tools Spring Boot DevTools 項(xiàng)目重啟,熱更新等。 Lombok 簡(jiǎn)化JavaBean的編寫,。比如在編寫實(shí)體類時(shí),,在類上添加@Data注解,可以不用寫get和set方法,。 Spring Configuration Processor spring默認(rèn)讀取yml配置,。但是有時(shí)候需要讀取傳統(tǒng)的xml和properties文件,這時(shí)候就需要Spring Configuration Processor依賴了,。如下配置: 引入pom依賴: setting.properties配置 再在類頭部加上 @PropertySource(“classpath:your.properties”)注解,。 當(dāng)配置屬性很多時(shí),@Value注解就會(huì)顯得冗余,,使用@ConfigurationProperties注解會(huì)更進(jìn)一步簡(jiǎn)化代碼 在項(xiàng)目中引用配置文件 Web 這里我們勾選Spring Web,、Spring Session及Rest Repositories HAL Explorer三項(xiàng) Spring Web 毋庸置疑,需要引入,。創(chuàng)建web項(xiàng)目,,包括restful,用Spring MVC創(chuàng)建應(yīng)用,。默認(rèn)用tomcat作為內(nèi)嵌的web容器,。 Spring Reactive Web 核心為Spring 5 WebFlux?;赟ervlet 3.1+,。包括的組件有Router Functions、WebFlux,、Reactive Streams,。主要構(gòu)建異步的、非堵塞的,、事件驅(qū)動(dòng)的服務(wù),,其在伸縮性方面表現(xiàn)非常好。 Servlet 3.1 規(guī)范特別適用于那種業(yè)務(wù)處理非常耗時(shí)的場(chǎng)景之下,,可以減少服務(wù)器資源 的占用,,并且提高并發(fā)處理速度 ,而對(duì)于那些能快速響應(yīng)的場(chǎng)景收益并不大,。 所以,,對(duì)于一般項(xiàng)目,我們不引入這個(gè)依賴,。 Rest Repositories 主要有以下作用: 1.Spring Data REST 作為 Spring Data 項(xiàng)目的子集,,開發(fā)者只需使用注解@RepositoryRestResource 標(biāo)記,就可以把整個(gè) Repository 轉(zhuǎn)換為 HAL 風(fēng)格的REST資源,,目前已支持 Spring Data JPA,、Spring Data MongoDB、Spring DataNeo4j等等。 2.簡(jiǎn)單點(diǎn)說,,SpringData REST把我們需要編寫的大量REST模版接口做了自動(dòng)化實(shí)現(xiàn)并符合HAL的規(guī)范.,。 3.HAL (HypertxtApplication Language) 是一個(gè)被廣泛采用的超文本表達(dá)的規(guī)范 4.官方文檔: https://www./spring-data-rest-zhcn.html 簡(jiǎn)單來說,比如我們用jpa創(chuàng)建了實(shí)體類Users,。我們創(chuàng)建一個(gè)UserRepositoriy,,并實(shí)現(xiàn)JpaRepository,添加@RepositoryRestResource注解,,就可以省去Controller,,直接拿到數(shù)據(jù)。 然后我們?cè)L問localhost:8080/users,,就可以拿到相關(guān)數(shù)據(jù)了,。 Spring Session 提供一組api和實(shí)現(xiàn)來管理用戶session,比如同域名下不同項(xiàng)目的session共享等,。 Rest Repositories HAL Explorer 在瀏覽器中查看rest存儲(chǔ)庫,。 JSON 超文本應(yīng)用程序語言(HAL) 是一種簡(jiǎn)單的格式,它提供了一種一致且簡(jiǎn)單的方法來在我們的 API 中的資源之間進(jìn)行超鏈接,。 Spring HATEOAS Richardson提出的REST成熟度模型,,該模型把 REST 服務(wù)按照成熟度劃分成 4 個(gè)層次: 1.第一個(gè)層次(Level 0)的 Web 服務(wù)只是使用 HTTP 作為傳輸方式,實(shí)際上只是遠(yuǎn)程方法調(diào)用(RPC)的一種具體形式,。SOAP 和 XML-RPC 都屬于此類,。 2.第二個(gè)層次(Level 1)的 Web 服務(wù)引入了資源的概念。每個(gè)資源有對(duì)應(yīng)的標(biāo)識(shí)符和表達(dá),。 3.第三個(gè)層次(Level 2)的 Web 服務(wù)使用不同的 HTTP 方法來進(jìn)行不同的操作,,并且使用 HTTP 狀態(tài)碼來表示不同的結(jié)果。如 HTTP GET 方法來獲取資源,,HTTP DELETE 方法來刪除資源,。 4.第四個(gè)層次(Level 3)的 Web 服務(wù)使用 HATEOAS。在資源的表達(dá)中包含了鏈接信息,??蛻舳丝梢愿鶕?jù)鏈接來發(fā)現(xiàn)可以執(zhí)行的動(dòng)作。 項(xiàng)目中對(duì)于RESTful層級(jí)的選擇要靈活把控,,現(xiàn)在最常用的就是level2這個(gè)層次,。 Spring Web Services 是Spring社區(qū)的一個(gè)產(chǎn)品,專注于創(chuàng)建文檔驅(qū)動(dòng)的Web服務(wù),。Spring Web Services旨在促進(jìn)契約優(yōu)先的SOAP服務(wù)開發(fā),,允許使用多種方式之一來操作XML有效負(fù)載來創(chuàng)建靈活的Web服務(wù)。 Template Engines Thymeleaf Thymeleaf提供了一個(gè)用于整合Spring MVC的可選模塊,,在應(yīng)用開發(fā)中,,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity,、FreeMarker等,。Thymeleaf的主要目標(biāo)在于提供一種可被瀏覽器正確顯示的、格式良好的模板創(chuàng)建方式,,因此也可以用作靜態(tài)建模,。 Security Spring Security 用于用戶認(rèn)證和授權(quán) SQL MyBatis Framework 依賴說明:支持自定義SLQ、存儲(chǔ)過程和高級(jí)映射,。MyBatis 使用 XML 描述符或注解將對(duì)象與存儲(chǔ)過程或 SQL 語句耦合,。 MyBatis是一個(gè)優(yōu)秀的基于java的持久層框架,它內(nèi)部封裝了jdbc,,使開發(fā)者只需要關(guān)注sql語句本身,,而不需要花費(fèi)精力去處理加載驅(qū)動(dòng)、創(chuàng)建連接,、創(chuàng)建statement等繁雜的過程,,它使用了ORM思想實(shí)現(xiàn)了結(jié)果集的封裝。 所有必要的依賴如上,。 項(xiàng)目基本結(jié)構(gòu) 以上為創(chuàng)建新項(xiàng)目的步驟,。 后邊會(huì)介紹怎樣創(chuàng)建一個(gè)helloworld程序,部署運(yùn)行等,。 |
|