最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC框架REST架構(gòu)體系原理分析

 更新時(shí)間:2021年09月15日 14:27:46   作者:DrLai  
REST:Representational State Transfer,資源表現(xiàn)層狀態(tài)轉(zhuǎn)換,是目前⽐較主流的⼀種互聯(lián)網(wǎng)軟件架構(gòu),它結(jié)構(gòu)清晰、標(biāo)準(zhǔn)規(guī)范、易于理解、便于擴(kuò)展

資源(Resource)

資源是網(wǎng)絡(luò)上的⼀個(gè)實(shí)體,或者說網(wǎng)絡(luò)中存在的⼀個(gè)具體信息,⼀段⽂本、⼀張圖片、⼀⾸歌曲、⼀段視頻等等,總之就是⼀個(gè)具體的存在??梢杂?#12032;個(gè) URI(統(tǒng)⼀資源定位符)指向它,每個(gè)資源都有對(duì)應(yīng)的⼀個(gè) 特定的 URI,要獲取該資源時(shí),只需要訪問對(duì)應(yīng)的 URI 即可。

表現(xiàn)層(Representation)

資源具體呈現(xiàn)出來的形式,⽐如⽂本可以⽤ txt 格式表示,也可以⽤ HTML、XML、JSON等格式來表 示。

狀態(tài)轉(zhuǎn)換(State Transfer)

客戶端如果希望操作服務(wù)器中的某個(gè)資源,就需要通過某種⽅式讓服務(wù)端發(fā)⽣狀態(tài)轉(zhuǎn)換,而這種轉(zhuǎn)換是 建⽴在表現(xiàn)層之上的,所有叫做"表現(xiàn)層狀態(tài)轉(zhuǎn)換"

Rest的優(yōu)點(diǎn):URL 更加簡(jiǎn)潔。 有利于不同系統(tǒng)之間的資源共享,只需要遵守⼀定的規(guī)范,不需要進(jìn)行其他配置即可實(shí)現(xiàn)資源共享

如何使用

如何使⽤ REST 具體操作就是 HTTP 協(xié)議中四個(gè)表示操作⽅式的動(dòng)詞分別對(duì)應(yīng) CRUD 基本操作。 GET ⽤來表示獲取資源。 POST ⽤來表示新建資源。 PUT ⽤來表示修改資源。 DELETE ⽤來表示刪除資源。

1.在Handler寫出增刪改查的方法

package Mycontroller;
import entity.Student;
import entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import repository.StudentRepository;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
@RequestMapping("/rest")
@RestController
public class RestHandler {
    @Autowired
    private StudentRepository studentRepository;
    @RequestMapping(value = "/findAll",method = RequestMethod.GET)
//    @GetMapping("/findAll")
    public Collection<Student> findAll(HttpServletResponse response){
        response.setContentType("text/json;charset=UTF-8");
        return studentRepository.findAll();
    }
    @GetMapping("/findById/{id}")
    public Student findById(@PathVariable("id") long id)
    {
        return studentRepository.findById(id);
    }
    @PostMapping("/sava")
    public void save(@RequestBody Student student){
        studentRepository.saveOrUpdate(student);
    }
    @PutMapping("/update")
    public void update(@RequestBody Student student){
        studentRepository.saveOrUpdate(student);
    }
    @DeleteMapping("/deleteById/{id}")
    public void deleteById(@PathVariable("id") long id){
        studentRepository.deleteById(id);
    }
}

2.Repository

@Repository
public class StudentRepositoryImpl implements StudentRepository {
    private static Map<Long, Student> studentMap;
    static {
        studentMap=new HashMap<>();
        studentMap.put(1L,new Student (1L,"zhangsan",22));
    }
    @Override
    public Collection<Student> findAll() {
        return studentMap.values();
    }
    @Override
    public Student findById(long id) {
        return studentMap.get(id);
    }
    @Override
    public void saveOrUpdate(Student student) {
        studentMap.put(student.getId(),student);
    }
    @Override
    public void deleteById(long id) {
        studentMap.remove(id);
    }
}

以上就是SpringMVC框架REST架構(gòu)簡(jiǎn)要分析的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC框架REST架構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng)的示例代碼

    Java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng)的示例代碼

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng),可以實(shí)現(xiàn)存款,取款,查詢等功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-09-09
  • 淺談在springboot中使用定時(shí)任務(wù)的方式

    淺談在springboot中使用定時(shí)任務(wù)的方式

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著在springboot中使用定時(shí)任務(wù)的方式展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • java實(shí)現(xiàn)用戶自動(dòng)登錄

    java實(shí)現(xiàn)用戶自動(dòng)登錄

    這篇文章主要為大家詳細(xì)介紹了java用戶自動(dòng)登錄的實(shí)現(xiàn)方法,分為六個(gè)步驟實(shí)現(xiàn)用戶自動(dòng)登錄,并驗(yàn)證用戶是否已經(jīng)登錄,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java編程synchronized與lock的區(qū)別【推薦】

    Java編程synchronized與lock的區(qū)別【推薦】

    互聯(lián)網(wǎng)信息泛濫環(huán)境下少有的良心之作!如果您想對(duì)Java編程synchronized與lock的區(qū)別有所了解,這篇文章絕對(duì)值得!分享給大家,供需要的朋友參考。不說了,我先學(xué)習(xí)去了。
    2017-10-10
  • 在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例

    在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例

    這篇文章主要介紹了在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Mybatis + js 實(shí)現(xiàn)下拉列表二級(jí)聯(lián)動(dòng)效果

    Mybatis + js 實(shí)現(xiàn)下拉列表二級(jí)聯(lián)動(dòng)效果

    這篇文章給大家介紹基于Mybatis + js 實(shí)現(xiàn)下拉列表二級(jí)聯(lián)動(dòng)效果,實(shí)現(xiàn)代碼分為前端界面實(shí)現(xiàn)和后端處理方法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-06-06
  • Java多線程中的Executor框架解析

    Java多線程中的Executor框架解析

    這篇文章主要介紹了Java多線程中的Executor框架解析,Executor 框架是 Java5 之后引進(jìn)的,在 Java 5 之后,通過 Executor 來啟動(dòng)線程比使用 Thread 的 start 方法更好,除了更易管理,效率更好,需要的朋友可以參考下
    2023-12-12
  • 一文了解為什么Java中只有值傳遞

    一文了解為什么Java中只有值傳遞

    Java?傳參是值傳遞還是引用傳遞?這個(gè)問題很基礎(chǔ),但是許多人都有點(diǎn)懵。本文就來通過一些示例帶大家詳細(xì)了解一下,需要的可以參考一下
    2022-07-07
  • Java信號(hào)量全解析

    Java信號(hào)量全解析

    這篇文章主要介紹了Java信號(hào)量的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較

    java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較

    這篇文章主要介紹了從源碼的角度淺析HashMap、TreeMap元素的存儲(chǔ)和獲取元素的邏輯;從Map與Set之間的關(guān)系淺析常用的Set中元素的存儲(chǔ)和判斷是否重復(fù)的邏輯,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

改则县| 浪卡子县| 漳平市| 西盟| 孝义市| 巴林右旗| 海城市| 乐安县| 星座| 景泰县| 高淳县| 土默特右旗| 城市| 门源| 会泽县| 平利县| 尉氏县| 巨野县| 长乐市| 铜鼓县| 乌兰察布市| 玉田县| 保靖县| 桐城市| 遵义市| 封开县| 天峻县| 定州市| 页游| 宜兴市| 修水县| 麻阳| 清徐县| 治县。| 施甸县| 凌海市| 扬中市| 桐城市| 洞头县| 湘阴县| 伊川县|