免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用 Spring 構建 RESTful Web 服務

原標題:Spring認證|使用 Spring 構建 RESTful Web 服務

本指南將引導您完成使用 Spring 創(chuàng)建“Hello, World”RESTful Web 服務的過程。

你將建造什么

您將構建一個接受 HTTP GET 請求的服務http://localhost:8080/greeting。

它將以問候語的 JSON 表示形式響應,如下面的清單所示:

{"id":1,"content":"Hello, World!"}

您可以使用name查詢字符串中的可選參數(shù)自定義問候語,如以下清單所示:

http://localhost:8080/greeting?name=User

的name參數(shù)值將覆蓋的默認值World,并反映在響應時,如下面的列表顯示:

{"id":1,"content":"Hello, User!"}

如何完成本指南

與大多數(shù) Spring入門指南一樣,您可以從頭開始并完成每個步驟,也可以繞過您已經(jīng)熟悉的基本設置步驟。無論哪種方式,您最終都會得到有效的代碼。

從頭開始,請轉到從 Spring Initializr 開始。

跳過基礎知識,請執(zhí)行以下操作:

下載并解壓縮本指南的源代碼庫,或使用Git克隆它:git clone https://github.com/spring-guides/gs-rest-service.git

光盤進入 gs-rest-service/initial

跳轉到創(chuàng)建資源表示類。

完成后,您可以根據(jù) 中的代碼檢查結果gs-rest-service/complete。

從 Spring Initializr 開始

如果您使用 Maven,請訪問Spring Initializr以生成具有所需依賴項 (Spring Web) 的新項目。

以下清單顯示了pom.xml選擇 Maven 時創(chuàng)建的文件:

Unresolved directive in - include::initial/pom.xml[]

如果您使用 Gradle,請訪問Spring Initializr以生成具有所需依賴項 (Spring Web) 的新項目。

以下清單顯示了build.gradle在您選擇 Gradle 時創(chuàng)建的文件:

Unresolved directive in - include::initial/build.gradle[]

手動初始化(可選)

如果您想手動初始化項目而不是使用前面顯示的鏈接,請按照以下步驟操作:

導航到https://start.spring.io。此服務包含應用程序所需的所有依賴項,并為您完成大部分設置。

選擇 Gradle 或 Maven 以及您要使用的語言。本指南假設您選擇了 Java。

單擊依賴項并選擇Spring Web

單擊生成。

下載生成的 ZIP 文件,該文件是使用您的選擇配置的 Web 應用程序的存檔。

如果您的 IDE 具有 Spring Initializr 集成,則可以從您的 IDE 完成此過程。

創(chuàng)建資源表示類

現(xiàn)在您已經(jīng)設置了項目和構建系統(tǒng),您可以創(chuàng)建您的 Web 服務。

通過考慮服務交互來開始這個過程。

該服務將處理對 的GET請求/greeting,可選擇name在查詢字符串中使用一個參數(shù)。該GET請求應200 OK在正文中返回一個帶有 JSON的響應,表示問候語。它應該類似于以下輸出:

{

  "id": 1,

  "content": "Hello, World!"

}

該id字段是問候語的唯一標識符,是問候語content的文本表示。

要對問候表示建模,請創(chuàng)建一個資源表示類。為此,請?zhí)峁┮粋€普通的舊 Java 對象,其中包含id和content數(shù)據(jù)的字段、構造函數(shù)和訪問器,如下面的清單(來自src/main/java/com/example/restservice/Greeting.java)所示:

Unresolved directive in - include::complete/src/main/java/com/example/restservice/Greeting.java[]

此應用程序使用Jackson JSON庫自動將類型實例編組Greeting為 JSON。默認情況下,Web Starter 包含 Jackson。

創(chuàng)建資源控制器

在 Spring 構建 RESTful Web 服務的方法中,HTTP 請求由控制器處理。這些組件由@RestController注解標識,GreetingController下面的清單 (from src/main/java/com/example/restservice/GreetingController.java)通過返回類的新實例來處理GET請求:/greetingGreeting

Unresolved directive in - include::complete/src/main/java/com/example/restservice/GreetingController.java[]

這個控制器簡潔明了,但背后有很多事情要做。我們一步一步分解。

該@GetMapping注釋確保 HTTP GET 請求/greeting被映射到該greeting()方法。

有其他 HTTP 動詞(例如@PostMappingPOST)的伴隨注釋。還有一個@RequestMapping注釋,它們都源自,并且可以用作同義詞(例如@RequestMapping(method=GET))。

@RequestParam將查詢字符串參數(shù)的值綁定name到方法的name參數(shù)中greeting()。如果name請求中沒有該參數(shù)defaultValue,World則使用of 。

方法主體的實現(xiàn)創(chuàng)建并返回一個新Greeting對象,該對象具有id和content屬性,該對象基于來自counter和的下一個值,并name通過使用 greeting 來格式化給定的template。

傳統(tǒng) MVC 控制器和前面展示的 RESTful Web 服務控制器之間的主要區(qū)別在于 HTTP 響應主體的創(chuàng)建方式。這個 RESTful Web 服務控制器不依賴于視圖技術來執(zhí)行服務器端將問候數(shù)據(jù)呈現(xiàn)為 HTML,而是填充并返回一個Greeting對象。對象數(shù)據(jù)將作為 JSON 直接寫入 HTTP 響應。

此代碼使用 Spring@RestController注釋,它將類標記為控制器,其中每個方法返回域對象而不是視圖。它是同時包含@Controller和的簡寫@ResponseBody。

該Greeting對象必須轉換為 JSON。由于 Spring 的 HTTP 消息轉換器支持,您無需手動進行此轉換。因為Jackson 2在類路徑上,所以MappingJackson2HttpMessageConverter會自動選擇Spring來將Greeting實例轉換為 JSON。

@SpringBootApplication 是一個方便的注釋,它添加了以下所有內容:

@Configuration:將類標記為應用程序上下文的 bean 定義源。

@EnableAutoConfiguration:告訴 Spring Boot 根據(jù)類路徑設置、其他 bean 和各種屬性設置開始添加 bean。例如,如果spring-webmvc在類路徑上,此注釋將應用程序標記為 Web 應用程序并激活關鍵行為,例如設置DispatcherServlet.

@ComponentScan:告訴 Spring 在包中查找其他組件、配置和服務com/example,讓它找到控制器。

該main()方法使用 Spring Boot 的SpringApplication.run()方法來啟動應用程序。您是否注意到?jīng)]有一行 XML?也沒有web.xml文件。該 Web 應用程序是 100% 純 Java 的,您無需處理任何管道或基礎設施的配置。

構建一個可執(zhí)行的 JAR

您可以使用 Gradle 或 Maven 從命令行運行應用程序。您還可以構建包含所有必要依賴項、類和資源的單個可執(zhí)行 JAR 文件并運行它。構建一個可執(zhí)行的 jar 可以很容易地將服務作為應用程序在整個開發(fā)生命周期中、跨不同環(huán)境等進行交付、版本化和部署。

如果您使用 Gradle,則可以使用./gradlew bootRun. 或者,您可以使用./gradlew build并運行 JAR 文件來構建JAR 文件,如下所示:

java -jar build/libs/gs-rest-service-0.1.0.jar

如果您使用 Maven,則可以使用./mvnw spring-boot:run. 或者,您可以構建 JAR 文件,./mvnw clean package然后運行 JAR 文件,如下所示:

java -jar target/gs-rest-service-0.1.0.jar

此處描述的步驟創(chuàng)建了一個可運行的 JAR。您還可以構建經(jīng)典的 WAR 文件。

顯示日志輸出。該服務應該會在幾秒鐘內啟動并運行。

測試服務

現(xiàn)在服務已啟動,請訪問http://localhost:8080/greeting,您應該看到:

{"id":1,"content":"Hello, World!"}

name通過訪問提供查詢字符串參數(shù)http://localhost:8080/greeting?name=User。請注意content屬性的值如何從Hello, World!變?yōu)镠ello, User!,如下面的清單所示:

{"id":2,"content":"Hello, User!"}

此更改表明 中的@RequestParam安排GreetingController按預期工作。該name參數(shù)已被賦予默認值,World但可以通過查詢字符串顯式覆蓋。

還要注意id屬性如何從1變?yōu)?。這證明您正在GreetingController跨多個請求處理同一個實例,并且它的counter字段在每次調用時都按預期遞增。

總結

恭喜!您剛剛使用 Spring 開發(fā)了一個 RESTful Web 服務。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
spring-cloud 構建一個restful的web服務
使用spring
全棧工程師之Restful與Spring Boot詳解
閱讀spring源碼
Real World REST Using Jersey, AJAX and JSON
使用CXF開發(fā)RESTFul服務
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服