javascript
使用Spring Boot构建RESTFul服务
每個人都在談?wù)撐⒎?wù),例如WSO2微服務(wù)框架 , Spring Boot等。由于我已經(jīng)很長時間沒有從事任何與Spring相關(guān)的項目了,所以我想到了使用Spring Boot實現(xiàn)一個簡單的RESTFul服務(wù)。
因此,我從Spring文檔開始。 這很簡單。 您可以使用“ Spring Initializr ”創(chuàng)建項目的結(jié)構(gòu)。 這是一個在線工具,您可以在其中將所有所需的依賴項添加到項目POM文件中。 由于我是Maven的忠實擁護者,因此我正在生成一個Maven項目。
在Spring Initializr UI中,您可以選擇語言,Spring Boot版本,項目組ID,工件名稱等。請參見下面的屏幕快照,以獲取我在生成項目時提供的信息。
當點擊“ Generate Project”時,它將壓縮的maven項目下載到您的計算機中。 解壓縮并導(dǎo)入到IDE中。 初始項目結(jié)構(gòu)如下。
在我的HelloWorld REST服務(wù)實現(xiàn)中,它接受用戶名作為路徑參數(shù)(或URL參數(shù)),并返回問候語JSON有效負載(響應(yīng))。 因此,我希望通過以下URL調(diào)用來調(diào)用我的REST服務(wù):APP_NAME / api / hello / chandana。
@RestController是使用Spring實現(xiàn)RESTFul服務(wù)的一種方式。 因此,這個新的控制器類將命名為HelloWorldController。 所以我的HelloWorldController類如下所示。
package com.chandana.helloworld;import com.chandana.helloworld.bean.Greeting; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/api") public class HelloWorldController {@RequestMapping("/")public String welcome() {//Welcome page, non-restreturn "Welcome to RestTemplate Example.";}@RequestMapping("/hello/{name}")public Greeting message(@PathVariable String name) {Greeting msg = new Greeting(name, "Hello " + name);return msg;}}注意:如果您發(fā)現(xiàn)Spring Boot 1.5.6無法正確導(dǎo)入類并在IDE中顯示錯誤消息“無法解析符號RestController”,則需要降級項目中使用的spring版本。 Spring Boot 1.5.6默認使用Spring 4.3.10.RELEASE依賴關(guān)系,需要將其降級到4.3.9.RELEASE。 因此,請在POM文件的屬性部分添加<spring.version> 4.3.9.RELEASE </spring.version>。
一切就緒。 我可以使用以下maven命令構(gòu)建并運行Spring Boot項目。 它將編譯項目并運行它。
mvn spring-boot:運行
啟動服務(wù)器時,您可以在控制臺中注意到注冊的REST服務(wù)URL,如下所示
INFO 9556 — [main] swsmmaRequestMappingHandlerMapping:將“ {[/ api / hello / {name}]} ”映射到公共com.chandana.helloworld.bean.Greeting com.chandana.helloworld。 HelloWorldController 。 消息 (java.lang.String)
INFO 9556 — [main] swsmmaRequestMappingHandlerMapping:將“ {[/ api /]} ”映射到公共java.lang.String com.chandana.helloworld。 HelloWorldController 。 歡迎 ()2017-0
最后,可以通過訪問以下URL來調(diào)用REST服務(wù):http:// localhost:8080 / api / hello / NAME
最終項目結(jié)構(gòu):
問候POJO類:
package com.chandana.helloworld.bean;public class Greeting {private String player;private String message;public Greeting(String player, String message) {this.player = player;this.message = message;}public String getPlayer() {return player;}public void setPlayer(String player) {this.player = player;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;} }POM XML:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chandana</groupId><artifactId>helloworld</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>helloworld</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring.version>4.3.9.RELEASE</spring.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>HelloWorldController類:
package com.chandana.helloworld;import com.chandana.helloworld.bean.Greeting; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/api") public class HelloWorldController {@RequestMapping("/")public String welcome() {//Welcome page, non-restreturn "Welcome to RestTemplate Example.";}@RequestMapping("/hello/{name}")public Greeting message(@PathVariable String name) {Greeting msg = new Greeting(name, "Hello " + name);return msg;}}結(jié)論
看起來,使用Spring Boot實現(xiàn)RESTFul服務(wù)非常簡單。 因此,我有了一個使用Spring Boot實現(xiàn)“ Yield Price Sri Lanka ” Android應(yīng)用程序后端的想法。 此外,希望實現(xiàn)一個管理用戶界面來管理價格和商品信息,以及一個公共網(wǎng)絡(luò)用戶界面來為沒有Android應(yīng)用程序的用戶顯示價格明細。 保持聯(lián)系。
翻譯自: https://www.javacodegeeks.com/2017/09/building-restful-service-using-spring-boot.html
總結(jié)
以上是生活随笔為你收集整理的使用Spring Boot构建RESTFul服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铁路 12306 回应假期车票秒光:不会
- 下一篇: 将Swagger与Spring Boot