SpringBoot-SpringMVC中,常用参数注解总结

Spring Boot和Spring MVC常用注解 Spring Boot和Spring MVC的注解大大简化了配置和启动流程,使得开发者可以更加专注于业务逻辑的实现。 阅读详情
/**
 * <pre>
 *
 * 作用在方法参数上的注解/参数对象,实现原理就是HandlerMethodArgumentResolver,参数解析器对每一个参数进行解析
 *
 * @PathVariable String demo 接收单个路径变量
 * @PathVariable Map demo 接收所有的路径变量
 * @RequestHeader String header 接收单个请求头
 * @RequestHeader Map header 接收所有的请求头
 * @RequestParam String param 接收指定的参数
 * @RequestParam List<String> param 接收指定名称的数组参数
 * @RequestParam Map param 接收所有的参数
 * @CookieValue String cookie 获取Cookie值
 * @CookieValue Cookie cookie 获取Cookie对象
 * @RequestBody String content (不能用于GET,这个注解是获取请求体的数据)
 *                              对于表单的请求体,为a=1&b=2
 * @RequestBody 对象类型 content
 *
 * @RequestAttribute String code 获取请求域中的数据
 * @MatrixVariable String key   获取矩阵变量中的值,矩阵变量必须全部封装在路径变量中
 *                              矩阵变量的语法 url;key=value;key2=value2,value22,value222
 *                              url之后,使用";"分割的为矩阵变量,数组方式有两种,一种是key=v1,vn,一种是k=v1,k=v2
 *                              最终的用法 "/luck/{id;key=value;key2=value2,value22,value222}
 *
 *                              默认情况下,矩阵变量是不开启的,用法,实现WebMvcConfigurer接口,修改默认的UrlPathHelper
 *                              @Override
 *                              public void configurePathMatch(PathMatchConfigurer configurer) {
 *                                  // 设置路径匹配的帮助类,默认对象是不支持矩阵变量的,需要开启
 *                                  UrlPathHelper urlPathHelper = new UrlPathHelper();
 *                                  urlPathHelper.setRemoveSemicolonContent(true);
 *                                  configurer.setUrlPathHelper(urlPathHelper);
 *                              }
 * @RequestPart MultipartFile file 当你需要处理上传的文件或者多部分表单中的某个字段时,会自动将对应的请求部分绑定到该参数上
 * @SessionAttribute String name  获取Session域中的指定名称的对对象值
 *
 * RedirectAttributes attriables 获取重定向携带的的数据,通过RedirectAttributesMethodArgumentResolver实现
 *
 * 下面两个作用一样,原理都是可以获取到整个请求链路中,保存到ModelAndViewContainer中的BindingAwareModelMap中的数据,并且最终会放入请求域中
 * Map map 在通过MapMethodProcessor实现,给map赋值的是ModelAndViewContainer对象中保存的一个BindingAwareModelMap对象,它既是Map,也是Model
 * Model model 通过ModelMethodProcessor实现,给map赋值的是ModelAndViewContainer对象中保存的一个BindingAwareModelMap对象,它既是Map,也是Model
 *
 * </pre>
 */

SpringBoot编程基础教程:Spring MVC框架 Spring是一个开源的Java开发框架,它提供了基于Java的轻量级WEB开发的最佳实践。在WEB应用开发中,SpringMVC是其中的一个重要组件。它基于Servlet API构建,帮助开发者快速创建、测试及部署WEB应用。但是,学习SpringMVC并不是一件容易的事情。对于初级到中级开发人员来说,掌握SpringMVC可能比较困难。因此,本文将从以下几个方面进行讲解:1.Spring Boot简介:这是一种快速启动的Java应用程序框架,可以轻松创建独立运行的Spring应用。 阅读详情

相关推荐

西门子1200PLC编程实战:OB、FC、FB与DB的深度解析与应用技巧

本文深度解析西门子1200PLC编程中OB、FC、FB与DB四大核心功能块的应用技巧。通过工厂化比喻,阐明OB作为程序总调度、FC作为可重用函数、FB作为带记忆的智能设备以及DB作为数据仓库的角色与关系,并提供实战技巧,帮助工程师构建结构清晰、易于维护的高效PLC程序。

weixin_29280657的博客 438

烧脑巨作,Spring Boot请求处理(常用参数注解使用)

即获取请求体【所以请求必须是post请求--@PostMapping】,一般情况下都会使用@RequestBody注解将参数映射到pojo类的能力,但是要保证前后传入的参数名是一样的。@PathVariable:一般我们使用URI template样式映射使用,即url/{param}这种形式,也就是一般我们使用的GET,DELETE,PUT方法会使用到的,我们可以获取URL后所跟的参数。而是直接给定一个值。当进行转发时可以在请求中携带上请求的参数,转发会携带上一次请求的参数(一次完整的请求包括转发)

m0_63437643的博客 1098

SCS 43. 利用Scissor算法从单细胞数据中挖掘临床表型关联的细胞亚群

本文详细介绍了Scissor算法在单细胞转录组数据分析中的应用,该算法能够精准挖掘与临床表型关联的细胞亚群。通过建立单细胞RNA测序数据与临床预测模型的直接关联,Scissor避免了传统聚类方法的局限性,为疾病机制研究和个性化医疗提供了新工具。文章还涵盖了数据预处理、模型选择、结果验证等实战技巧。

weixin_28736335的博客 488

Spring、SpringMVC、SpringBoot注解大全及解释

Spring、SpringMVC和Spring Boot是Java开发中常用的框架,它们通过注解来简化配置和编码。

2303_79615760的博客 1099

HWSD全球土壤数据下载、处理与提取完整指南

全球尺度的科学研究与工程项目中,土壤数据是必不可少的基础底图,而HWSD(和谐世界土壤数据库)凭借其统一的分辨率与属性标准,成为农业区划、生态模型、土地利用变化和水资源评估等领域的通用数据源。深入理解其“栅格存编号、数据库存属性”的核心原理,是高效使用这套数据的关键。通过掌握MDB数据库结构、属性字段含义以及栅格与属性表的关联方法,研究者可以将原始数据转化为可用的研究底图。无论你是需要提取特定区域的土壤属性,还是进行面积统计与点位采样,合理的处理流程都能显著提升工作效率。本文从下载注册开始,一步步梳理数据清

weixin_29056781的博客 313

跟着团子学SAP EPPM:项目管理常见的集成场景(PPM\PS\MS Project)

在SAP的EPPM解决方案中,针对企业战略级别的投资组合管理首先是定义合适的投资组合的层级结构,在投资组合下可以通过不同维度去定义投资篮(Portofolio Bucket)进行层层拆分,在最下层级的投资篮下可以分配明细的投资项(Portofolio Item),投资项可以是独立的一个一个具体执行的项目,也可以是单纯的一次服务等等。 今天主要聚焦在投资项的维度展开讲一下在SAP中投资项常见的几种集成模式: 集成场景1:使用PPM中的Project Management进行项目管理 第一个场景是在创建投资项

Lucas1211的博客 4138

Spring SpringMVC Springboot Java库⭐️中常见的注解以及具体代码使用方式案例

小伙伴们大家好,做过几个项目之后来总结下常用的注解以及使用方式一、Spring的常见注解1. 声明相关。

产品经理克星(狗头) 1286

(2024,DDPM,DDIM,流匹配,SDE,ODE)扩散:基础教程

本文的目标是尽可能简单地教授扩散。第一节介绍扩散的基本原理。第二节和第三节展示如何构建随机和确定性扩散采样器。第四部分介绍了密切相关的流匹配,可看作是扩散的推广。​第五节,强调实践中最重要的一些设计选择,包括采样器、噪声时间表和参数化方法。

qq_44681809的博客 1万+

Spring、SpringMVC、SpringBoot常用注解

Service对应的是业务层Bean,@Service(“userService”)注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然。@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了。

liyanlei的专栏 849

图像标注神器:完全开源免费的多功能标注工具Labelme详解

Labelme是MIT开发的免费开源图像标注工具,支持多边形、矩形等多种标注类型,适用于目标检测、分割等计算机视觉任务。提供Windows可执行文件和Python安装两种方式,可输出JSON格式并转换为COCO等标准数据集。具有跨平台、功能全面、社区活跃等优势,能显著提升标注效率,是AI视觉项目的重要数据准备工具。

数字人生 526

量化 insider 爆料! 散户打板必亏?(打板必看!量化资金如何“隔日砸盘”收割散户)

量化开发 insider 爆料💥 散户追的涨停板📉,可能是机构故意做的陷阱!本文从技术视角拆解“涨停陷阱”,帮你看清市场真实逻辑🧠。

XiaoqiangClub的博客 442

Spring Boot2(Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传)

SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。包括 List 结构和 Map 结构的集合(包括数组)主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,METHOD==代表修饰方法,TYPE==代表修饰类、默认值是:true。用于把指定 cookie 名称的值传入控制器方法参数。2. 使用上面的success.html作为返回页面。

qq_52897007的博客 1334

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SpringMVC,SpringBoot快速验证参数是否完整 基于@Valid注解

前言 在接口开发中,经常是需要对传入参数完整性进行验证的,或者对手机号格式进行验证等,而一般不了解@Valid注解之前,都是通过自己封装方法来验证,都是一堆if else集合,这样判断对于代码结构很不友好,开发效率也不高,使用@Valid注解可以快速的对参数进行验证,并且可以通过抓取全局异常,从而实现统一返回 引用 @Valid是使用hibernate validation的时候使用,其中java...

wantnrun的专栏 1755

OV9734 DATASHEET,完整规格书

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

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

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

springboot整合springmvc关于请求参数和注解

GetMapping:表示get 请求方式的@RequestMapping@PostMapping:表示 post 请求方式的@RequestMapping@PutMapping:表示put 请求方式的@RequestMapping@DeleteMapping:表示 delete 请求方式的@RequestMapping。value:别名 path 表示请求的 ri, 在类和方法方法同时使用 value,方法上的继承类上的 value 值。2.控制器方法的形参,接收请求的参数,多种方法接收参数。

lixingzhuo的博客 167

深度学习工具包 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")

springMvc,SpringBoot自定义注解校验接收参数不能为空

在很多时候我们的Controller是需要对接收参数进行校验的,如果为空的会影响一些操作. 然后自己写了一个自定义注解实现了参数校验 上代码~~~~~~~~~~~~~~ 首先是自定义注解 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotatio...

weixin_42536015的博客 2万+

[转载]SpringBoot系列: SpringMVC 参数绑定注解解析

本文转载自https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析 本文介绍了用于参数绑定的相关注解。 绑定:将请求中的字段按照名字匹配的原则填入模型对象。 SpringMVC就跟Struts2一样,通过拦截器进行参数匹配。 代码在 https://github.com/morethi...

诸葛建站 163

springboot 自定义注解 结合springMVC 处理方法中接收的参数

在最近做的项目中, 遇到一个问题 , 需要使用post 提交参数 , 然后用 @RequestBody 进行后端参数的接收 , 但是接收的参数是JSON格式的 , 接收之后还需要转成对象,这就有点麻烦. 所以决定用自定义注解对参数先进行处理,再传入. 下面介绍我的步骤: 首先自定义一个注解: /** * 接收json数据格式的参数, 转换成对象 */ @Retention(...

longtime的博客 1438

postmapping注解参数说明_解析JWT+SpringBoot+SpringMVC参数解析器

简介大家以前都使用过session存储信息,有的交给容器创建,有的存储到mysql或者redis,这次项目用到了JWT,我们把用户的信息和登录的过期时间都封装到一个token字符串里,客户端每次请求只需要在头信息里携带token即可,话不多说,下面是目录结构.一.annonation注解package com.demo.annotation;import java.lang.annotation....

weixin_39562752的博客 739

使用 Spring 注解jar 进行参数校验 (Spring SpringMVC SpringBoot 注解判断部分参数是否可以为空)

本文介绍的是一个注解jar,用来校验参数,支持requestHead和requestBody两种请求方式,也支持Spring(SSM)和SpringBoot框架,支持使用get、post,不使用注解(默认)、使用@RequestParam以及@RequestBody(RequestBody仅仅支持对象、Map)接收参数,返回的对象为MsgResultVO,因为jar使用的aop相关实现,因此使用本...

qq_15674631的博客 1480

springboot常用注解

springboot常用使用注解

ksyjwq的博客 385

springboot2.x基础教程:springmvc参数绑定注解今天彻底搞清楚

在编写SpringBoot项目中我们通常在Controller层使用@RequestParam、@RequestBody等注解接收前端请求参数。 我们应该怎么使用各种注解,这片文章带大家把springmvc参数绑定使用彻底搞清楚。 文章导航Http请求报文请求方法请求URL请求头部请求数据常见的ContentType1、application/x-www-form-urlencoded2、multipart/form-data3、application/json4、text/xmlSpringMVC参数.

编程之家出品 415

【SpringBoot组件】基于SpringMVC注解 使用AOP对http接口请求响应参数加解密 数据脱敏 @Security @Sensitive

对SpringWeb项目中SpringMVC注解的接口参数进行脱敏与加解密,仅限于Http请求中字符串类型的参数数据生效,可进行充分扩展,可自进行定义脱敏、加解密等。

肥宅友的博客 2045
上一篇: SpringBoot中,错误页和异常处理定制实现原理
下一篇: SpringBoot监控指标actuator的使用
安缇吖
博客等级 码龄9年 411粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值