国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Springboot 實現 Restful 服務,基于 HTTP / JSON 傳輸

2019-11-08 03:18:58
字體:
來源:轉載
供稿:網友
“怎樣的人生才是沒有遺憾的人生?我的體會是:(1)擁有健康;(2)創造“難忘時刻”;(3)盡力做好自己,不必改變世界;(4)活在當下。” – 《向死而生》李開復基于上一篇《SPRingboot 整合 Mybatis 的完整 Web 案例》,這邊我們著重在 控制層 講講。講講如何在 Springboot 實現 Restful 服務,基于 HTTP / JSON 傳輸。

一、運行 springboot-restful 工程

git clone 下載工程 springboot-learning-example ,項目地址見 GitHub – https://github.com/JeffLi1993/springboot-learning-example。下面開始運行工程步驟(Quick Start):

1.數據庫準備a.創建數據庫 springbootdb:CREATE DATABASE springbootdb;b.創建表 city :(因為我喜歡徒步)DROP TABLE IF EXISTS  `city`;CREATE TABLE `city` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘城市編號’,  `province_id` int(10) unsigned  NOT NULL COMMENT ‘省份編號’,  `city_name` varchar(25) DEFAULT NULL COMMENT ‘城市名稱’,  `description` varchar(25) DEFAULT NULL COMMENT ‘描述’,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;c.插入數據INSERT city VALUES (1 ,1,’溫嶺市’,’BYSocket 的家在溫嶺。’);

2. springboot-restful 工程項目結構介紹springboot-restful 工程項目結構如下圖所示:org.spring.springboot.controller – Controller 層org.spring.springboot.dao – 數據操作層 DAOorg.spring.springboot.domain – 實體類org.spring.springboot.service – 業務邏輯層application – 應用啟動類application.properties – 應用配置文件,應用啟動會自動讀取配置

3.改數據庫配置打開 application.properties 文件, 修改相應的數據源配置,比如數據源地址、賬號、密碼等。(如果不是用 MySQL,自行添加連接驅動 pom,然后修改驅動名配置。)

4.編譯工程在項目根目錄 springboot-learning-example,運行 maven 指令:mvn clean install

5.運行工程右鍵運行 springboot-restful 工程 Application 應用啟動類的 main 函數。用 postman 工具可以如下操作,根據 ID,獲取城市信息GET http://127.0.0.1:8080/api/city/1獲取城市列表GET http://127.0.0.1:8080/api/city新增城市信息POST http://127.0.0.1:8080/api/city更新城市信息PUT http://127.0.0.1:8080/api/city刪除城市信息DELETE http://127.0.0.1:8080/api/city/2

二、springboot-restful 工程控制層實現詳解

1.什么是 REST?REST 是屬于 WEB 自身的一種架構風格,是在 HTTP 1.1 規范下實現的。Representational State Transfer 全稱翻譯為表現層狀態轉化。Resource:資源。比如 newsfeed;Representational:表現形式,比如用JSON,富文本等;State Transfer:狀態變化。通過HTTP 動作實現。理解 REST ,要明白五個關鍵要素:
資源(Resource)資源的表述(Representation)狀態轉移(State Transfer)統一接口(Uniform Interface)超文本驅動(Hypertext Driven)

6 個主要特性:
面向資源(Resource Oriented)可尋址(Addressability)連通性(Connectedness)無狀態(Statelessness)統一接口(Uniform Interface)超文本驅動(Hypertext Driven)具體這里就不一一展開,詳見 http://www.infoq.com/cn/articles/understanding-restful-style

2.Spring 對 REST 支持實現CityRestController.java 城市 Controller 實現 Restful HTTP 服務
123456789101112131415161718192021222324252627282930publicclass CityRestController {    @Autowired   privateCityService cityService;    @RequestMapping(value = "/api/city/{id}", method = RequestMethod.GET)   publicCity findOneCity(@PathVariable("id") Long id) {        returncityService.findCityById(id);   }    @RequestMapping(value = "/api/city", method = RequestMethod.GET)   publicList<City> findAllCity() {        returncityService.findAllCity();   }    @RequestMapping(value = "/api/city", method = RequestMethod.POST)   publicvoid createCity(@RequestBodyCity city) {        cityService.saveCity(city);   }    @RequestMapping(value = "/api/city", method = RequestMethod.PUT)   publicvoid modifyCity(@RequestBodyCity city) {        cityService.updateCity(city);   }    @RequestMapping(value = "/api/city/{id}", method = RequestMethod.DELETE)   publicvoid modifyCity(@PathVariable("id") Long id) {        cityService.deleteCity(id);   }}
具體 Service 、dao 層實現看代碼GitHub https://github.com/JeffLi1993/springboot-learning-example/tree/master/springboot-restful

代碼詳解:@RequestMapping 處理請求地址映射。method – 指定請求的方法類型:POST/GET/DELETE/PUT 等value – 指定實際的請求地址consumes – 指定處理請求的提交內容類型,例如 Content-Type 頭部設置application/json, text/htmlproduces – 指定返回的內容類型@PathVariable URL 映射時,用于綁定請求參數到方法參數@RequestBody 這里注解用于讀取請求體 boy 的數據,通過 HttpMessageConverter 解析綁定到對象中

3.HTTP 知識補充GET            請求獲取Request-URI所標識的資源POST          在Request-URI所標識的資源后附加新的數據HEAD         請求獲取由Request-URI所標識的資源的響應消息報頭PUT            請求服務器存儲一個資源,并用Request-URI作為其標識DELETE       請求服務器刪除Request-URI所標識的資源TRACE        請求服務器回送收到的請求信息,主要用于測試或診斷CONNECT  保留將來使用OPTIONS   請求查詢服務器的性能,或者查詢與資源相關的選項和需求詳情請看《JavaEE 要懂的小事:一、圖解Http協議》

三、小結

Springboot 實現 Restful 服務,基于 HTTP / JSON 傳輸,適用于前后端分離。這只是個小demo,沒有加入bean validation這種校驗。還有各種業務場景。推薦:《 Springboot 整合 Mybatis 的完整 Web 案例》歡迎掃一掃我的公眾號關注 — 及時得到博客訂閱哦!— http://www.bysocket.com/ —— https://github.com/JeffLi1993 —
上一篇:自認為不錯的注釋習慣

下一篇:Leetcode

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌吉市| 安阳市| 澄迈县| 长垣县| 广水市| 京山县| 安泽县| 肇州县| 通辽市| 长治市| 镇安县| 赤水市| 苍溪县| 历史| 新宁县| 颍上县| 通化县| 彩票| 隆昌县| 婺源县| 盘山县| 屯昌县| 容城县| 榕江县| 金华市| 江油市| 色达县| 宁晋县| 瑞安市| 乐昌市| 泸西县| 改则县| 柘城县| 安义县| 永康市| 临高县| 青河县| 本溪市| 江西省| 巩义市| 南昌市|