【java、springMVC】REST风格

news/2024/11/25 22:42:52/

描述访问网络资源的格式

传统风格:http://localhost/user/saveUser

rest风格:http://localhost/user

优点

1.隐藏资源访问行为(用行为动作区分操作)

2.书写简化

注解解释

@RequestMapping

7221e8eaedad4814bb5cb714489081c9.jpg

@PathVariable 

7d28e647304543e5813abd6f596e41f6.jpg

@RestController 

2bc589c176e54c3f94b4f48c6aba528f.jpg

简化开发注解 

94a559cb000e48d8b72838a49983973b.jpg

入门案例(最基础,有不合理)

@RequestMapping(value = "/users", method = RequestMethod.POST)@ResponseBodypublic String save(@RequestBody User user) {System.out.println("user save " + user);return "{'module':'user save'}";}@RequestMapping(value = "/users/{id}", method = RequestMethod.DELETE)@ResponseBodypublic String delete(@PathVariable Integer id) {System.out.println("user delete " + id);return "{'module':'user delete'}";}@RequestMapping(value = "/users", method = RequestMethod.PUT)@ResponseBodypublic String update(@RequestBody User user) {System.out.println("user update " + user);return "{'module':'user update'}";}@RequestMapping(value = "/users/{id}",method = RequestMethod.GET)@ResponseBodypublic String getById(@PathVariable Integer id) {System.out.println("user getById " + id);return "{'module':'user getById'}";}@RequestMapping(value = "/users",method = RequestMethod.GET)@ResponseBodypublic String getAll() {System.out.println("user getAll ");return "{'module':'user getAll'}";}

快速开发

package org.example.controller;/** @Auther:huangzhiyang* @Date:2023/10/7* @Description:*/import org.example.domain.Book;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/book")
public class BookController {@PostMappingpublic String save(@RequestBody Book book) {System.out.println("book save "+book);return "{'info':'springmvc'}";}@DeleteMapping("/{id}")public String delete( @PathVariable String id) {System.out.println("book delete"+id);return "{'info':'springmvc'}";}@PutMappingpublic String update(@RequestBody Book book) {System.out.println("book update");return "{'info':'springmvc'}";}
}


http://www.ppmy.cn/news/1155337.html

相关文章

多模态模型文本预处理方式

句子级别 句子级别的表征编码一整个句子到一个特征中。如果一个句子有多个短语,提取这些短语丢弃其他的单词。 缺点:这种方式会丢失句子中细粒度的信息。 单词级别 将句子中的类别提取出来,结合成一个句子。 缺点:会在类别之…

Linux CentOS 7升级curl8.4.0使用编译安装方式

1、查看当前版本 # curl --version curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps tel…

【数据结构】排序--选择排序(堆排序)

目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。 需要注意的是排升序要建大堆,排降序建小堆。 直接选择排…

vue3+vite项目中使用svgIcon

如何在vue2webpack项目中使用svgIcon?参考:手摸手,带你优雅的使用 icon - 掘金 这篇文章主要介绍如何在vue3项目中优雅的使用图标 1、通过 vite-plugin-svg-icons 插件封装SvgIcon组件 npm i vite-plugin-svg-icons -D 2、配置 vite.conf…

解决:PowerDesigne找不到右边表的工具栏

下载压缩包: PowerDesigner16.5压缩包 https://pan.baidu.com/s/1PxGafZUb5kcqSuPnxT4zgA?pwd6nyz http://PowerDesigner16.5压缩包 提取码:6nyz PowerDesigne破解版 找不到右边表的工具栏? 问题:PowerDesigner 快捷工具栏…

pdf格式的简历中的照片太小,如何修改图片的大小

问题描述:在使用一些在线版生成软件制作简历时,比如使用超级简历制作的简历存在着一个照片的尺寸比较小。如何去修改pdf中的证件照大小。 解决办法:使用一些在线编辑pdf的软件,比如我随便找了一个(在线编辑pdf&#x…

大模型分布式训练并行技术(一)-概述

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&am…

【评分卡实现】应用Python中的toad.ScoreCard函数实现评分卡

逻辑回归已经在各大银行和公司都实际运用于业务。之前的文章已经阐述了逻辑回归三部曲——逻辑回归和sigmod函数的由来、