7.基于SpringBoot的SSMP整合案例-表現層開發

目錄

1.基于Restfu1進行表現層接口開發

1.1創建功能類

1.2基于Restful制作表現層接口

2.接收參數

2使用Apifox測試表現層接口功能

保存接口:

分頁接口:

3.表現層一致性處理

3.1先創建一個工具類,用作后端返回格式統一類:

3.2表現層接口統一返回值類型結果:

3.3 小結:


1.基于Restfu1進行表現層接口開發

1.1創建功能類

創建一個表現層功能類BookController,位置如下圖所示:

代碼如下所示:

package com.summer.controller;import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import java.util.List;@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate IBookService bookService;@GetMappingpublic List<Book> getAll() {return bookService.list();}@PostMappingpublic Boolean save(@RequestBody Book book) {return bookService.save(book);}@PutMappingpublic Boolean update(@RequestBody Book book) {return bookService.modify(book);}@DeleteMapping("{id}")public Boolean delete(@PathVariable Integer id) {return bookService.delete(id);}@GetMapping("{id}")public Book getById(@PathVariable Integer id) {return bookService.getById(id);}@GetMapping("{currentPage}/{pageSize}")public IPage<Book> getPage(@PathVariable Integer currentPage, @PathVariable Integer pageSize) {IPage page = new Page(currentPage, pageSize);return bookService.page(page, null);}
}

1.2基于Restful制作表現層接口

  • 新增:POST
  • 制除:DELETE
  • 修改:PUT
  • 查詢:GET

2.接收參數

  • 實體數據:@RequestBody路徑變量:@PathVariable


2使用Apifox測試表現層接口功能

  • 保存接口:

傳遞的數據按照Book的數據結構,通過body參數,json格式傳遞到后端

  • 分頁接口:

3.表現層一致性處理

設計表現層返回結果的模型類,用于后端與前端進行數據格式統一,也稱為前后端數據協議

3.1先創建一個工具類,用作后端返回格式統一類:

代碼如下所示:

package com.summer.controller.Utils;import lombok.Data;@Data
public class R {private Boolean flag;private Object data;public R() {}public R(Boolean flag) {this.flag = flag;}public R(Boolean flag, Object data) {this.flag = flag;this.data = data;}
}

3.2表現層接口統一返回值類型結果:

package com.summer.controller;import com.summer.controller.Utils.R;
import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import java.util.List;@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate IBookService bookService;@GetMappingpublic R getAll() {return new R(true, bookService.list());}@PostMappingpublic R save(@RequestBody Book book) {return new R(bookService.save(book));}@PutMappingpublic R update(@RequestBody Book book) {return new R(bookService.modify(book));}@DeleteMapping("{id}")public R delete(@PathVariable Integer id) {return new R(bookService.delete(id));}@GetMapping("{id}")public R getById(@PathVariable Integer id) {return new R(true, bookService.getById(id));}@GetMapping("{currentPage}/{pageSize}")public R getPage(@PathVariable Integer currentPage, @PathVariable Integer pageSize) {IPage page = new Page(currentPage, pageSize);return new R(true, bookService.page(page, null));}
}

3.3 小結:

1.設計統一的返回值結果類型便于前端開發讀取數據

2.返回值結果類型可以根據需求自行設定,沒有固定格式

3.返回值結果模型類用于后端與前端進行數據格式統一,也稱為前后端數據協議

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40699.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringMVC 的工作流程和詳細解釋

Spring MVC&#xff08;Model-View-Controller&#xff09;框架是基于經典的 MVC 設計模式構建的&#xff0c;用于開發 Web 應用程序。下面是 Spring Boot MVC 的工作流程和詳細解釋&#xff1a; 1.客戶端發起請求 1.客戶端&#xff08;通常是瀏覽器&#xff09;發起 HTTP 請求…

招聘智能管理系統設計

設計一個招聘智能管理系統&#xff0c;需要從多個維度考慮&#xff0c;包括但不限于用戶界面、功能模塊、數據安全、算法模型等。以下是一個基本的設計框架&#xff1a; 1. 系統架構&#xff1a; 前端&#xff1a;提供直觀的用戶界面&#xff0c;包括應聘者和招聘者的登錄/注冊…

Python學習篇:Python基礎知識(三)

目錄 1 Python保留字 2 注釋 3 行與縮進 ?編輯4 多行語句 5 輸入和輸出 6 變量 7 數據類型 8 類型轉換 9 表達式 10 運算符 1 Python保留字 Python保留字&#xff08;也稱為關鍵字&#xff09;是Python編程語言中預定義的、具有特殊含義的標識符。這些保留字不能用作…

Android 工具腳本

工具腳本 Shell腳本 獲取Git分支名稱 def gitBranch() {def branch ""def proc "git rev-parse --abbrev-ref HEAD".execute()proc.in.eachLine { line -> branch line }proc.err.eachLine { line -> println line }proc.waitFor()branch }

生信算法9 - 正則表達式匹配氨基酸序列、核型和字符串

1. 使用正則表達式匹配指定的氨基酸序列 import re# 氨基酸序列 seq VSVLTMFRYAGWLDRLYMLVGTQLAAIIHGVALPLMMLI# 正則表達式匹配 match re.search(r[A|G]W, seq)# 打印match及匹配到開始位置和結束位置 print(match) # <re.Match object; span(10, 12), matchGW> prin…

DP學習——觀察者模式

學而時習之&#xff0c;溫故而知新。 2個角色 分為啥主題和觀察者角色。 我覺得主題就是干活的&#xff0c;打工仔&#xff0c;為觀察者干活。 一對多。一個主題&#xff0c;多個觀察者——就像一個開發人員對多個項目經理——項目經理拿小皮鞭抽呀抽呀&#xff0c;受不了。 …

代碼隨想錄算法訓練營第70天圖論9[1]

代碼隨想錄算法訓練營第70天:圖論9 ? 拓撲排序精講 卡碼網&#xff1a;117. 軟件構建(opens new window) 題目描述&#xff1a; 某個大型軟件項目的構建系統擁有 N 個文件&#xff0c;文件編號從 0 到 N - 1&#xff0c;在這些文件中&#xff0c;某些文件依賴于其他文件的…

5款軟件讓電腦更方便,更快,更好看

? 你有沒有想過&#xff0c;有些軟件能讓你的電腦用起來更方便&#xff0c;更快&#xff0c;更好看&#xff1f; 1. 屏幕動畫創作——Screen To Gif ? Screen To Gif是一款功能強大的屏幕錄制軟件&#xff0c;專注于將屏幕上的動態內容轉換為高質量的GIF動畫。它不僅支持自…

《ClipCap》論文筆記(下)

原文出處 [2111.09734] ClipCap: CLIP Prefix for Image Captioning (arxiv.org) 原文翻譯 接上篇 《ClipCap》論文筆記&#xff08;上&#xff09;-CSDN博客 4. Results Datasets.我們使用 COCO-captions [7,22]、nocaps [1] 和 Conceptual Captions [33] 數據集。我們根…

自動化設備上位機設計 一

目錄 一 設計原型 二 后臺代碼 一 設計原型 二 后臺代碼 namespace 自動化上位機設計 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}} }namespace 自動化上位機設計 {partial class Fo…

Pyqt5中如何讓label里面的圖片進行更換,避免出現黑圖

在Pyqt5的界面開發過程中&#xff0c;發現一個label的圖片怎么都添加不上&#xff0c;而且出現黑色&#xff0c;主要原因就是在進行顯示的時候需要加一行清除的代碼&#xff1a; label.clear()如果不加這行代碼&#xff0c;當里面的圖片發生變化時&#xff0c;顯示出來的就是黑…

miniprogram-to-uniapp-微信小程序轉換成uniapp項目

文章目錄 參考:miniprogram-to-uniapp使用指南第一步第二步第三步第四步【miniprogram-to-uniapp】轉換微信小程序”項目為uni-app項目(新版本工具已經支持各種小程序轉換) 參考: 小程序技能樹 uni-app基礎知識總結 miniprogram-to-uniapp使用指南 第一步 win + R 輸入…

Openwrt路由器部分ipv6公網地址無法訪問的問題

路由器是Openwrt&#xff0c;終端訪問ipv6地址經常有些能訪問&#xff0c;有些不能訪問&#xff0c;一開始以為是運營商問題&#xff0c;后面ssh到openwrt發現所有訪問都正常。 查閱資料后才知道是MTU設置問題&#xff0c;Openwrt 默認MTU是1492&#xff0c;使用IPV6應減少60個…

微信小程序遮罩層顯示

效果展示&#xff1a; wxml頁面&#xff1a; <view classmodal-mask wx:if{{showModal}}><view class"modal-container"><view classmodal-content></view><view classmodal-footer bindtap"closeImage">//這個/images/ind…

Java 基礎查漏補缺

1.深入解讀&#xff1a;JDK與JRE的區別 JDK提供了完整的Java開發工具和資源&#xff0c;包括編譯器、調試器和其他開發工具&#xff0c;滿足開發人員的各種需求。 JRE則相對更為基礎&#xff0c;它只提供了Java程序運行所需的環境&#xff0c;包含了Java虛擬機&#xff08;JVM&…

數字類型<整數、復數>

Python 中&#xff0c;數字類型 Number&#xff0c; 包括整數 int、浮點 float 數和復數 complex 三個子類型。 用來表示程序中不同的數字類型的數據。 整數 整數類型&#xff1a;用來表示整數數值&#xff0c;即沒有小數部分的數值&#xff0c;在 Python 中&#xff0c;沒有…

Nettyの網絡聊天室擴展序列化算法

1、網絡聊天室綜合案例 客戶端初始代碼&#xff1a; Slf4j public class ChatClient {public static void main(String[] args) {NioEventLoopGroup group new NioEventLoopGroup();LoggingHandler LOGGING_HANDLER new LoggingHandler(LogLevel.DEBUG);MessageCodecSharabl…

使用c++函數式編程實現Qt信號槽機制

問題背景 在下面的代碼中&#xff0c;Input輸入器 輸入數據&#xff0c;希望A和B 接收數據。但使用的賦值&#xff0c;導致in.a和a只是拷貝數據&#xff0c;而不是同一個對象&#xff0c;使得數據不同步。 #include <iostream> struct A {int age 32; }; struct B {int …

searchForm自適應布局 + 按鈕插槽

收起 展開 代碼&#xff1a; useResizeObserverHooks.js import { useEffect, useLayoutEffect } from "react";export const useResizeObserver (containerDom, domClass, callback) > {useLayoutEffect(() > {let resizeObserver null;let dom null;if …

Qt Json詳細介紹

一.概念介紹 JSON&#xff08;JavaScript Object Notation&#xff09;是一種輕量級的數據交換格式&#xff0c;常用于前后端數據傳輸和存儲。它具有以下特點&#xff1a; 易讀性&#xff1a;JSON 使用人類可讀的文本格式表示數據&#xff0c;采用鍵值對的方式組織數據&#x…