当前位置: 首页 > news >正文

spring和springmvc常用注解

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数据,映射到功能处理方法的参数上。

http://www.lryc.cn/news/174536.html

相关文章:

  • 【Java】Java生成PDF工具类
  • STL map,插入和查找的一些注意事项
  • 基于springboot+vue的客户关系管理系统(前后端分离)
  • 【Java 基础篇】Java Stream 流详解
  • 题解:ABC321A - 321-like Checker
  • Zig实现Hello World
  • Vue3+element-plus切换标签页时数据保留问题
  • 前端教程-TypeScript
  • 代码随想录算法训练营 动态规划part06
  • 能跑通的mmdet3d版本
  • SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)
  • bootstrapv4轮播图去除两侧阴影及线框的方法
  • python 自建kafka消息生成和消费小工具
  • Prim算法:经过图中所有节点的最短路径
  • Linux 信号捕捉函数 signal sigaction
  • StarRocks操作笔记
  • Linux的ls -ld命令产生的信息怎么看
  • Linux- 内存映射文件(Memory-Mapped File)
  • 李航老师《统计学习方法》第五章阅读笔记
  • iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队
  • 使用 Elasticsearch、OpenAI 和 LangChain 进行语义搜索
  • NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
  • leetcode20. 有效的括号 [简单题]
  • ubuntu20.04下源码编译colmap
  • Jumpserver堡垒机
  • 第一百五十三回 如何实现滑动窗口
  • Oracle 12c自动化管理特性的新进展:自动备份、自动恢复和自动维护功能的优势|oracle 12c相对oralce 11g的新特性(3)
  • Redis——Jedis中hash类型使用
  • 肖sir__项目实战讲解__004
  • 数据库数据恢复-ORACLE常见故障有哪些?恢复数据的可能性高吗?