spring和springmvc常用注解

2023-09-20 10:24:14

1.Spring常用注解:
1)@Repository将DAO类声明为Bean
2)@Service用于修饰service层的组件
3)@Controller通常作用在控制层,将在Spring MVC中使用
4)@Component是一个泛化的概念,仅仅表示spring中的一个组件(Bean),可以作用在任何层次
5)@Scope是springIoc容器中的一个作用域,在 Spring IoC 容器中具有以下几种作用域:singleton(单例)、prototype(多例)、Web 作用域(reqeust、session、globalsession)、自定义作用域。
6)@Autowired将自动在Spring上下文与其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方
7)@Resource:
(1)@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
(2)指定了name或者type则根据指定的类型去匹配bean
(3)指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错@Transactional声明式事务管理编程中使用的注解

2.SpringMVC常用注解:
1)@RequestMapping:注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。
(1)用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法
(2)用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

2)@RequestParam:主要用于将请求参数区域的数据映射到控制层方法的参数上

3)@ModelAttribute:
(1)绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用;
(2)暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping注解的方法)之前,自动添加到模型对象中,用于视图页面展示时使用;
(3)暴露@RequestMapping方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为模型数据,用于视图页面展示时使用。

4)@SessionAttributes:在默认情况下,当ModelMap中的属性作用域是request级别时,也就是说,当本次请求结束后,ModelMap中的属性将销毁。如果希望在多个请求中共享ModelMap中的属性,必须将其属性转存到session中,这样ModelMap的属性才会被跨请求访问;
spring允许我们有选择地指定ModelMap中的哪些属性需要转存到session中,以便下一个请求属对应的ModelMap的属性列表中还能访问到这些属性。
SpringMVC为我们提供这样一个注解来实现上面的场景:`@SessionAttributes`:将ModelMap的属性值共享到session中。

5)@RequestBody:主要用来接收前端传递给后端的json字符串中的数据的(即请求体中的数据的);
GET方式无请求体,所以使用@RequestBody接收数据时,**前端不能使用GET方式提交数据,而是用POST方式进行提交**。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
简而言之:
(1) 一个请求:只有一个@RequestBody;
(2) 一个请求:可以有多个@RequestParam。

6)@RequestHeader:使用 @RequestHeader 注解可以获取指定的请求头信息。如果想要获取所有的请求头信息,可以使用 Map<String,String>、MultiValueMap<String,String>、HttpHeaders 这三个 Map 中的任何一个封装所有请求头的 name 和 value。

7)@PathVariable:该注解请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定。
即当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。数上。

8)@CookieValue:注解主要是将请求的Cookie数据,映射到功能处理方法的参数上。

更多推荐

Golang 基础面试题 01

Golang面试题合集.png背景在之前的文章中分享了k8s相关的面试题,本文我们重点来讨论和k8s密切相关的Go语言面试题。这几年随着云原生的兴起,大部分后端开发者,特别是Java开发者都或多或少的想学习一些Go相关的技能,所以今天分享的内容比较初级,适合Go语言初学者。image.png本文内容依然来自于这个仓库h

torch 和paddle 的GPU版本可以放在同一个conda环境下吗

新建conda虚拟环境,python版本3.8.17虚拟机,系统centos7,内核版本Linuxfastknow3.10.0-1160.92.1.el7.x86_64,显卡T4,nvidia-smi,460.32.03,对应cuda11.2,安装cuda11.2和cudnn,conda版本23.1conda安装pad

shiro反序列化漏洞Shiro-550/Shiro-721反序列化

文章目录shiro反序列化漏洞Shiro-550反序列化漏洞(CVE-2016-4437)漏洞简介漏洞原理Shiro-721反序列化漏洞(CVE-2019-12422)Shiro550和Shiro721的区别是什么漏洞指纹漏洞介绍漏洞原理攻击流程漏洞复现:CVE-2016-4437漏洞复现:CVE-2019-12422

腾讯mini项目-【指标监控服务重构】2023-07-17

今日已办根据导师的指导意见修改了otelclient相关配置的代码认真学习uptrace的文档,会比otel、signoz的好理解:什么是OpenTelemetryhttps://uptrace.dev/opentelemetry/architecture.html#opentelemetry-sdktrace部分介绍

软件设计模式系列之五——建造者模式

1模式的定义建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。这意味着你可以使用相同的构建过程来创建不同类型的对象,而不必关心每个对象的内部细节。这种模式适用于构建具有复杂配置的对象,例如具有多个可选组件的汽车。2结构建造者模式的结构包括以下几个关键部分:Director(指导者):负责指导构

设计模式:建造者模式

目录代码简单实现常用使用方法注解方法使用建造者模式总结建造者模式(BuilderPattern)是一种创建型设计模式,它通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。该模式将对象的构建过程封装在一个独立的建造者类中,客户端通过指定不同的建造者来构建不同的对象。在建造者模式中,有以下几个主要

http1和http2的主要区别

主要有四个方面:二进制分帧多路复用服务器主动推送头部压缩将前两点结合来说,首先二进制分帧帧:HTTP/2数据通信的最小单位;消息:HTTP/2中,例如在请求和响应等操作中,消息由一个或多个帧组成;流:存在于连接中的一个虚拟通道。流可以承载双向消息,每个流都有一个唯一的整数ID。而二进制分帧是发生在应用层和传输层中间产生

第P5周—运动鞋识别

一、前期工作1.导入数据集数据集:工作台-Heywhale.comimporttorchimportmatplotlib.pyplotaspltfromtorchvisionimporttransforms,datasetsimportos,PIL,random,pathlibdata_dir=r'D:\P5-data

WebGL 计算平行光、环境光下的漫反射光颜色

目录光照原理光源类型平行光点光源环境光反射类型漫反射漫反射光颜色计算公式环境反射环境反射光颜色表面的反射光颜色(漫反射和环境反射同时存在时)计算公式平行光下的漫反射根据光线和法线方向计算入射角θ(以便求两者点积:cosθ)归一化法线:表面的朝向一个表面具有两个法向量平面的法向量唯一示例代码——平行光漫反射(Lighte

人工智能在现代科技中的应用和未来发展趋势

人工智能是一种模拟人类智能的技术,包括学习、推理、计算和自动化等方面的能力。在现代科技中,人工智能应用非常广泛,包括以下方面:1.自然语言处理:人工智能可以识别和处理自然语言,使得语音识别、语音合成、文本翻译等变得更加智能。2.图像识别:人工智能可以通过图像识别技术来分析和识别图像中的内容,使得人脸识别、车牌识别、图像

2023 蓝帽杯初赛web&部分取证复现

前言:初赛进线下了,计划着在决赛前突击学习一下取证,但时间还是太紧只看了很多内存取证和手机取证计算机取证和服务器取证没掌握---(不过复赛没考,也算狗运了)目录<1>web-LovePHP(file()函数侧信道攻击)<2>取证(1)APK取证1【APK取证】涉案apk的包名是?[答题格式:com.baid.ccs]2

热文推荐