Restful风格,@RestController注解 与 @Controller

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂GRE、L2TP、IPsec的区别 本文通过Wireshark抓包实战,详细解析GRE、L2TP和IPsec三大隧道协议的核心差异与应用场景。从报文结构到配置示例,帮助网络工程师快速掌握这些协议的本质,提升VPN部署与故障排查能力。特别适合准备HCIP认证的工程师深化理解。 阅读详情

宁静的风格

简单的理解,restful是一种url 风格,或者说是规范,在以前的网址中,假定一个业务,取得数据网址为http:// test / get,添加信息的网址为http:// test / post,类似这样。

但是在宁静风格中,取得数据和添加数据的网址均应为http:// test,方法为get或者post;所以,在restful风格中,一个网址就是一个资源,其形式类似于http:// xxx .com / xx / {id} / {id},例如某购物网站,产品有很多种类,每种产品下有很多子类型,那么http://shop.com/laptop/lenovo/1103  代表了联想1103型号电脑,而http://shop.com/laptop/hp/1024  代表了2014型号电脑。

在春天mvc中,有@requestparm,@ rerevree和@pathvariable三种注解来获得浏览器端的参数,其中前两者都是由浏览器提交交参参,而@pathvariable则是从网址中取得参数;假设代码如下:

@Requestmapping(value="/{category}/{brand}/{id},method=RequestMethod.POST)
    public void getbyid(@PathVariable("category") String category
                        @PathVariable("brand") String brand
                        @PathVariable("id") String id){
                        //具体代码略
                  }
在上述代码中,访问http://shop.com/laptop/hp/1024网址时,则,category为“laptop”,brand为”hp”,id为”1024”;所以说,在restful风格中,一个网址即表示了一个资源

二。restcontroller与控制器

假定一个用户对象,对象有很多属性(姓名,性别,年龄,出生日期,地址,电话) 

在我的了解中,这二者的区分为:@restcontroller为@controller和@ responsebody的结合 

在@Controller注解中,的报道查看的英文字符串,的英文或者字符串匹配的模板名称,即直接渲染视图,与HTML页面配合使用的,

在这种情况下,前后端的的配合要求比较高,JAVA后端的代码要结合的HTML的情况进行渲染,使用模型对象(或者的ModelAndView)的数据将填充用户视图中的相关属性,然后展示到浏览器,这个过程也可以称为渲染; 

对应视图user.jsp中的html代码:

java的示例代码如下:

@Controller
@RequestMapping(method = RequestMethod.GET, value = "/")
    public String getuser(Model model) throws IOException {
        model.addAttribute("name",bob);
        model.addAttribute("sex",boy);
        return "user";//user是模板名
    }
对应视图user.jsp中的html代码:
<html xmlns:th="http://www.thymeleaf.org">
<body>
    <div>
        <p>"${name}"</p>
        <p>"${sex}"</p>
    </div>
</body>
</html>
 
而在@restcontroller中,返回的应该是一个对象,即return一个user对象,这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。

 

java的端代码:

@RestController
@RequestMapping(method = RequestMethod.GET, value = "/")
    public User getuser( ) throws IOException {
        User bob=new User();
        bob.setName("bob");
        bob.setSex("boy");
        return bob;
    }

访问网址得到的是JSON字符串{“名”:”鲍勃”,”性”:”男孩”},前端页面只需要处理这个字符串即可。

 

 

STM32 BLDC无刷电机霍尔信号捕获与换相控制实战解析 本文深入解析了STM32如何实现BLDC无刷电机的霍尔信号捕获与换相控制。详细阐述了硬件接口配置、定时器霍尔传感器模式的使用、抗干扰的滤波器与软件容错设计,以及中断服务与换相逻辑的实战代码。重点解决了信号抖动、换相不准等常见问题,旨在帮助开发者构建稳定可靠的电机驱动基础。 阅读详情

相关推荐

OnePose++: Keypoint-Free One-Shot Object Pose Estimation without CAD Models

算法:首先采用LoFTR的细匹配模块,将粗匹配点周围的小窗口内,通过对比特征找到最相似的位置,细化当前特征点的位置。算法:PnP算法,利用3D点和2D投影点的对应关系,计算相机相对于物体的6D姿态(位置朝向)。算法:使用COLMAP,对2D粗匹配对(不依赖传统关键点匹配)进行特征轨迹计算并生成半稠密点云,每个3D点包含坐标和对应的2D投影点。算法:LoFTR粗匹配模块,将每一个像素点视为伪关键点,生成半稠密的2D匹配对。输入:优化后的3D、当前视图的2D特征点。输出:粗半稠密点云以及物体的特征轨迹。

雨落倾城的博客 885

介绍两种风格的URL

两种风格的“动态资源”——统一资源定位符(Uniform Resource Lactor,URL) 当前互联网上主要有两种主要风格的URL: 第一种直接在URL中知名文件(比如xxx.php,xxx.aspx等),可称为“具体的”URL,其响应通常基于一个网页模版而生成的。 如下图 第二种是更强调URL的直观性,可称为“抽象的”URL,这种类型的URL,通常...

263

台达B3伺服电机485通讯的调试过程

最近上了一项目,没办法直接把B3伺服接到PLC上去,怎么办?偶说试下直接电脑通过100多米的485线控制好了,定型前的测试就这样展开了。 1、焊CN1口 如果不安装CN1,是开不了机的,要报很多错误,比如SERV EMG ALERT, 上限报警,下限报警什么的,怎么办?直接焊好CN1头子吧,烦了点,但是必要的。 主要接的是11,9,10,32,31,30几个脚,按照图上连接好就是了。 2、 接线路 按照上面的图,接上伺服电机线,编码器线,电源线,包括限位常闭开关、485连线等,就完..

shidong01的博客 1万+

REST(一种URL接口设计风格)的前世今生

在学习RESTful 风格接口之前,即使你不知道它是什么,但你肯定会好奇它能解决什么问题?有什么应用场景?听完下面描述我想你就会明白:在互联网并没有完全流行的初期,移动端也没有那么盛行,页面请求和并发量也不高,那时候人们对接口的要求没那么高,一些动态页面(jsp)就能满足绝大多数的使用需求。 但是随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代,并且安卓、IOS、小程序等形式客户端层出不穷,客户端的种

Java搜索工程技术栈 1560

杂记 | 使用keycloak实现SSO单点登录(新手向,概念、原理、逻辑、详细步骤、难点解释)

使用keycloak实现SSO单点登录(概念、原理、逻辑、详细步骤、难点解释)

野生猿林仔的博客 2万+

手把手教你用srec_cat生成带CRC校验的STM32固件(解决OTA常见校验失败问题)

本文针对STM32 OTA升级中常见的固件校验失败问题,提供了一套使用srec_cat工具自动生成带CRC32校验固件的实战解决方案。文章详细拆解了命令参数,指导开发者如何为固件嵌入CRC值、处理地址偏移及合并文件,从而确保Bootloader能可靠校验固件完整性,提升远程更新的稳定性。

kappa的博客 783

ResTful风格的Url

RESTful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次。往常的传参方式:使用RESTful操作资源:使用URL+请求方式确定具体的动作RESTFul风格好处:安全:使用问号键值对的方式给服务器传递数据太明显,容易被人利用来对系统进行破坏。使用 REST 风格携带数据不再需要明显的暴露数据的名称。风格统一:URL 地址整体格式统一,从前到后始终都使用斜杠划分各个单词,用简单一致的格式表达语义。

2401_85217463的博客 612

【即插即用模块】卷积篇 | TGRS 2025 | HLKConv:小核+空洞=大核,感受野一致,但更轻更准!

本文介绍了分层大核卷积模块HLKConv,该模块通过动态大核+空洞卷积实现高效感受野扩展,将超大核卷积分解为小核+空洞卷积(如53×53核用17×17+dilation=3实现),计算量仅为普通大核的1/10。模块采用双分支设计:基础卷积分支捕捉局部细节,大核空洞分支捕捉长距离关联,通过1×1卷积融合。实验表明HLKConv在红外小目标检测中优于传统大核卷积,适用于高分辨率视觉任务。代码实现了不同核尺寸的配置,输入输出特征维度保持不变,计算效率显著提升。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 346

uri和url的区别?什么是restful风格?

uri是统一资源定位符。url是统一资源标识符。uri是具体的资源,而url是具体的资源的地址,url是属于uri的一部分。restful风格四个特点1.资源,大多数资源以json格式表示2.统一的接口,crud分别对应http的get,post,put,delete3.uri。每个uri对应一个特定的资源4.无状态。所有的资源搜可以采用uri去定位,而不与其他资源产生耦合。...

CR2018博客 3161

addr2line解析不出来行号的解决方式(汇编解析高阶版)

摘要:本文针对AEC crash问题中addr2line无法解析行号的情况,通过llvm-addr2line和反汇编分析,定位到CamX::AECBEStats17::AdjustROIParams函数中的乘法溢出问题。关键发现包括: 常规addr2line只能解析到函数名但无具体行号 llvm-addr2line解析出多个可能溢出点(行196/204/211/218/270/271) 反汇编显示6个条件分支跳转到溢出处理函数 源码分析确认这些位置均存在乘法运算 最终通过汇编级调试工具成功定位UBsan报告

168

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2576

Spring返回Json忽略null不转换如何设置?

Spring MVC中,在controller层使用@RestController或@ResponseBody返回json时, 返回的对象中,有的字段为空,如果想字段为空时,或者字段为null时,不返回该字段。有以下几种方法: 1. 使用注解 @JsonInclude(JsonInclude.Include.NON_NULL) Include.NON_EMPTY:属性为 空 或者 为 NULL 都不序列化 Include.NON_NULL:属性为NULL 不序列化 @Data @JsonInclude(J

MJQ_YQHXLSCS 2475

【在 WSL2 GUI 中使用 pulseaudio 播放声音】

最近在搞一个Linux项目,由于WSL2中需要用到声音外放,无奈只能潜心研究。后来就使用了一种折中的方式替代,那就是pulseaudio。目前来讲WSL2对硬件外设的支持还是不太友好,关于USB的支持我之前在其他文章中已经论述过了,这里不讨论。1、Windows11别忘记打开声音2、可能有一定延迟,因为是通过网络传输的。3、效果的话只能见仁见智了,如果不能满足要求就安装一个实实在在的Ubuntu吧!

jiexijihe945的博客 4530

Java @RestController注解浅析

本文关注重点@RestController 在网上的一番搜索后,我大致总结出了几点: 1.@RestController为开发提供了方便☺,在提供json接口时需要的配置操作再也不需要自己配置了。 2.@RestController注解相当于@ResponseBody和@Controller的结合 @Controller @ResponseBody public class MyControlle...

杨光 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

@Controller和@RestController的区别

详解@Controller和@RestController的区别

weixin_60090880的博客 383

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

restful风格,restcontroller与controller

初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触的也越来越多,如今spring的况且已基本运用熟练,简单谈一下我的一些看法,当然,只是我自己的浅显粗陋的见解,不对的地方还望指正。 restful风格 简单的理解,restful是一种url风格,或者说是规范,在以前的网址中,假定一个业务,取得数据网址为ht...

acw0866的博客 169

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringMVC提供@RestController Restful风格

在使用Restful风格的SpringMVC时,为了不用在每个功能方法上都要添加上@ResponseBody,SpringMVC提供了@RestController 下面是注解的定义: package org.springframework.web.bind.annotation; import java.lang.annotation.Documented; import java.l

gloryzyf 900

@Controller @ResponseBody @ControllerAdvice @RestController @RestControllerAdvice 注解定义

Controller ResponseBody RestController ControllerAdvice RestControllerAdvice@Controller@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Controlle

icecoola_的博客 2577

@RestController和@Controller+@ResponseBody的使用

RestController的作用相当于Controller加ResponseBody共同作用的结果。RestController的作用:包含上面两个的作用,且支持。但采用RestController请求方式一般会采用。

书启鸿蒙知秋枫 500

@Controller 和 @RestController 区别

@Controller 用于标识为spring MVC的controller @RestController 是一个便利的注解,加了这个注解就相当于加了@Controller和@ResponseBody 以下是相同的: @Controller @ResponseBody public class MyController { } @RestControlle...

weixin_30849403的博客 68

@RestController与@Controller的区别

一. @RestController 用于写API,给移动客户端提供数据,一般是返回json数据, RESTful格式传参,就是在链接上传递参数 例句: @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/{id}") @ResponseBody publ...

纵横江湖二十年的博客 163

@RestController和@Controller的区别

在idea中的控制器中,当使用的是@Controller,返回视图会。下划线,@RestController返回。

peakybinder的博客 626

spring中的RESTFUL风格是什么?

什么是RestFul风格: RestFul是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的一种代码编写风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 来源: REST 来自于Roy Thomas Fielding 2000年的博士论文 - 《Architectural Styles and the Design of Network-based Software Architectures》 实现机制: restful风格

初夏0811的博客 2万+

注解:@Controller、@RestController、@ResponseBody区别(返回值)以及用法

使用@Controller返回的是前端页面,可以直接通过String跳转到jsp,html等页面(可以在视图配置控制器里配置)。是spring4.0版新增的注解,@RestController=@Controller+@ResponseBody。如果使用@Controller既要返回页面,也要返回数据,那就要加上@ResponseBody一起使用。如果使用String返回的页面找不到,或者没有该页面,在访问地址之后汇报404的错误。@Controller:通过String返回的是视图页面。

weixin_55696802的博客 962

@RestController注解和@Controller区别

@RestController的作用等同于@Controller + @ResponseBody @Controller注解 使用它标记的类就是一个SpringMVC Controller 对象。 @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,所以无法解析jsp,html页面,并且跳转不到相应页面 ...

ZhiJICN的博客 173

Rest风格及常用注解

功能:相当于@Controller+@ResponseBody,所有方法默认返回JSON或XML数据。@ResponseBody:将方法返回值直接作为 HTTP 响应体(JSON、XML、文本等),作用:专用于处理HTTP GET请求,通常用来获取资源,如上图中获取所有部门。作用:从查询参数中提取值,用于接收URL地址传参或者表单传参。作用:专用于处理HTTP POST请求,通常用来创建资源。作用:专用于处理HTTP PUT请求,通常用来修改资源。作用:映射请求到控制器的方法。

weixin_54360227的博客 728
上一篇: 阿里DRUID 配置说明及分析,后起之秀
下一篇: IDEA 将 SpringBoot 的项目打包成 war包
A_JavaEE
博客等级 码龄10年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值