SpringMVC中的常用注解

news2024/11/20 1:51:30

Java知识点总结:想看的可以从这里进入

目录

      • 3.2、常用的注解

3.2、常用的注解

  • @Controller:代表此类是一个控制器,需要配置包的扫描。Spring MVC 是通过组件扫描机制查找应用中的控制器类的

    在Spring6.0之后要求控制层必须添加该注解才会被识别成一个Controller。

    Controller在SpringMVC中默认是单例的,因为我们基本不会在控制器里面定义属性,但如果在特殊情况需要定义属性的时候,可以在类上面加上注解@Scope(“prototype”)改为多例的模式.

  • @RequestMapping(“访问路径”):最常被用到的注解之一,可以标注在类和方法上,它将请求与处理请求的控制器方法关联起来,建立映射关系,映射一个url到控制器的一个特定方法,通过此路径调用相应方法。

    • 用在类上时:对此类中的方法都会生效,路径为(类+方法)
    • 用在方法上:和用在类上的组成一个完整的路径
    @Controller
    @RequestMapping("/test")
    public class TestController {
    	//此时请求映射所映射的请求的请求路径为:/test/pagejump
        @RequestMapping("/pagejump")
        public String (){
        }
    }
    
    属性含义
    value用来设置控制器方法的请求映射地址,注解的默认属性,如果只要一个value 属性,属性名可以被省略,取值可以是一个字符串类型的数组({路径1,路径2,………}),表示该控制器方法可以匹配多个请求地址
    name性相当于方法的注释,用于解释这个方法是用来干什么的,使方法更易理解。
    method用来设置控制器方法支持的请求方式(GET、POST、DELETE、PUT)
    image-20230301180725668
    params指定请求中的参数,只有当请求中携带了符合条件的参数时,控制器方法才会对该请求进行处理。
    “param”:请求中必须携带名为 param 的参数
    “!param”:请求中不能携带名为 param 的参数
    “param=value”:请求中必须携带名为 param 的参数,且参数的取值必须为:value
    “param!=value”:请求中不能携带参数:param = value。
    headers用于设置请求中请求头信息(和params 用法类似 )
  • @RequestMapping的派生注解,用来处理不同的请求,RestFul风格中经常使用

    • @PostMapping():只处理post提交的请求
    • @GetMapping():只处理get提交的请求
    • @PutMapping():处理put请求的映射
    • @DeleteMapping:处理delete请求的映射
  • @RequestParam(“name的值”) :用于方法的参数前,用来处理前端提交数据名和方法参数名相匹配的问题(参数不能为空)

    • required:默认为true,不允许为空。设置成false,可以为空
    • defaultValue:可以修改默认值
    public void test(@RequestParam("userId") int id){
    }
    //它会把参数处理过后,再进入到方法中,比如如下:
    String userId = request.getParameter("userId");
    int id = Integer.getInteger(userId);
    
  • @SessionAttribute:用在参数前,用来获取sesion中设置过的数据(比如登录用户)

    public void test(@SessionAttribute("user") User user){
    }
    
  • @ResponseBody:用在方法上,使方法不再走视图解析器,而是返回字符串数据。.

  • @RequestBody:用于接收前端传来的实体,自动装配到对象中

    @PostMapping("/user")
    public String testRequestBody(@RequestBody User user) {
        System.out.println("获取到的username为:"+ user.getUsername());
        System.out.println("获取到的password为:"+user.getPassword());
        return "success";
    }
    
  • @PathVariable:用来获取 URL 参数,处理Restfull 风格

    //http://localhost:8080/user/{id}
    @GetMapping("/user/{id}")
    public String testPathvariable(@PathVariable(value="id") Integer id) {	//value可解决名字不匹配
        System.out.println("获取到的id为:"+id);
        return "success";
    }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/388277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++11 标准模板(STL)(std::unordered_map)(二)

定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…

计算机网络-- 网络层(day06)

文章目录网络层思维导图IPv4地址的应用规划定长的子网掩码变长的子网掩码VLSMIP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报静态路由选择动态路由选择路由选择协议概述常见的路由选择协议路由器的基本结构路由信息协议RIP的基本工作原理开放最短路径优先OSPF的基…

nandflash VS norflash

介绍下nandflash NAND Flash是一种非易失性存储器&#xff08;Non-Volatile Memory&#xff0c;简称NVM&#xff09;&#xff0c;以闪存为基础&#xff0c;是目前应用最广泛的存储器之一。 它利用了固态电路技术&#xff0c;可以将数百万个晶体管集成在一张芯片上&#xff0c…

从输入URL到Web页面呈现的全过程

当用户在浏览器的地址栏中输入 URL 并点击回车后&#xff0c;页面是如何呈现的。 简单来说&#xff0c;当用户在浏览器的地址栏中输入 URL 并点击回车后&#xff0c;浏览器从服务端获取资源&#xff0c;然后将内容显示在页面上。这个过程经过了&#xff1a;浏览器缓存 -> D…

利用Nginx给RStudio-Server配置https

前篇文档&#xff0c;我这边写了安装RStudio-Server的方法。默认是http的访问方式&#xff0c;现在我们需要将其改成https的访问方式。 1、给服务器安装Nginx&#xff1a;参照之前的安装Nginx的方法。 2、创建/usr/local/nginx/ssl目录&#xff1a; mkdir /usr/local/nginx/ss…

P6入门:了解P6 Professional 工具栏及地图分享

目录 引言 相关分享 引言 凭借更大的灵活性和增强的自定义功能&#xff0c;最新版本的 Oracle Primavera P6 Professional 的界面比早期版本有了巨大改进。对于有经验的伙伴来说&#xff0c;它仍然是熟悉的领域&#xff0c;几乎所有预期的功能都显示在前面。该界面可以更好地…

【汇编】三、寄存器(一只 Assember 的成长史)

嗨~你好呀&#xff01; 我是一名初二学生&#xff0c;热爱计算机&#xff0c;码龄两年。最近开始学习汇编&#xff0c;希望通过 Blog 的形式记录下自己的学习过程&#xff0c;也和更多人分享。 上篇系列文章链接&#xff1a;【汇编】二、预备知识&#xff08;一只 Assember 的…

Spring Boot结合IDEA自带Maven插件快速切换profile | Spring Cloud 10

一、前言 IDEA是目前 Java 开发者中使用最多的开发工具&#xff0c;它有着简约的设计风格&#xff0c;强大的集成工具&#xff0c;便利的快捷键。 在项目项目整个开发运维周期中&#xff0c;我们的的项目往往需要根据不同的环境&#xff0c;使用不同的文件配置。 比如以下部…

机器学习:Transformer

Transformer sequence-to-sequence(seq2seq) 很大语音没有文本&#xff0c;7000种中超半数没有文字。 遇到的问题&#xff1a; 遇到问题时候可以先不管它&#xff0c;先出一个baseline看看效果&#xff0c;后续再进行提升。 tts&#xff1a; 文本转语音&#xff0c;语音合成…

【图神经网络】李宏毅

GNN 引入 假如要预测一个人是否是凶手。可以通过每个角色的特征训练出一个分类器。 有没有我们忽略的信息&#xff0c;或者我们可以利用但没有完全利用的信息。就是角色的关系。 这些角色关系可以让我们在做分类的时候获得一些额外的信息&#xff0c;可以帮助我们做更好的mode…

C++ 断言

文章目录前言assertstatic_assert前言 断言(Assertion)是一种常用的编程手段&#xff0c;用于排除程序中不应该出现的逻辑错误。它是一种很好的Debug工具。其作用是判断表达式是否为真。C提供了assert和static_assert来进行断言。在C库中也有断言&#xff0c;其中断言与C的相同…

java @Autowired @Resource @Inject 三个注解的区别

javax.annotation.Resourcejdk 内置的&#xff0c;JSR-250 中的注解。依赖注入通过 org.springframework.context.annotation.CommonAnnotationBeanPostProcessor 来处理。org.springframework.beans.factory.annotation.Autowired org.springframework.beans.factory.annotati…

汇编系列01-汇编语言简介

每天进步一点点&#xff0c;不要浮躁&#xff0c;沉下心来。 什么是汇编语言 我们知道CPU是经过精心设计的电路组成的&#xff0c;里面有很多微小的门电路&#xff0c;门电路是通过输入电平控制的&#xff0c;电平分为高低&#xff0c;我们用1表示高电平&#xff0c;0表示低电…

MySQL基础查询操作

文章目录&#x1f68f; Select语句&#x1f680; 一、SQL底层执行原理&#x1f6ac; &#xff08;一&#xff09;、查询的结构&#x1f6ac; &#xff08;二&#xff09;、SQL语句的执行过程&#x1f6ad; 1、WHERE 为什么不包含聚合函数的过滤条件&#xff1f;&#xff08;面试…

Python | Leetcode刷题日寄Part05

欢迎交流学习~~ LeetCode & Python 系列&#xff1a; &#x1f3c6; Python | Leetcode刷题日寄Part01 &#x1f50e; Python | Leetcode刷题日寄Part02 &#x1f49d; Python | Leetcode刷题日寄Part03 ✈️ Python | Leetcode刷题日寄Part04 Python|Leetcode刷题日寄Par…

【企业服务器LNMP环境搭建】nginx安装

1、介绍&#xff08;官方网址&#xff1a;nginx news &#xff09; 1.1 常见用法 1) web服务器软件 httpd http协议 同类的web服务器软件&#xff1a;apache nginx(俄罗斯) IIS(微软 fastcgi) lighttpd(德国) 2)代理服务器 反向代理 3)邮箱代理服务器 IMAP POP3 SMTP 4)负载均…

前端ES6异步编程技术——Promise使用

Promise是什么 官方的定义是&#xff1a;Promise是ES6新推出的用于进行异步编程的解决方案&#xff0c;旧方案是单纯使用回调函数来解决的。对于开发人员来说&#xff0c;我们把promise当作一个普通的对象即可&#xff0c;使用它可以用来封装一个异步操作并可以获取其成功/失败…

Spring Cloud(微服务)学习篇(六)

Spring Cloud(微服务)学习篇(六) 2 Sentinel实现流量规则(控制台版) 2.1 变更pom.xml(shop-user-server项目)代码 2.1.1 加入如下依赖 <!--熔断限流--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-…

稀疏子空间聚类——对超像素聚类

如何使用&#xff1a;超像素分割算法进行过分割——>对所有的超像素样本提取新特征(包括对比度增强直方图特征、超像素样本邻域纹理特征、基于先验知识的位置信息特征)——>采用距离约束优化的稀疏子空间聚类算法(对超像素样本进行聚类) 在超像素分割中构造自适应相似度系…

【linux】:进程状态(僵尸进程等)以及环境变量

文章目录 前言一.进程状态 进程的优先级二.环境变量总结前言 本篇文章是接着上一篇【linux】:进程概念的后续&#xff0c;对于有基础的同学可以直接看这篇文章&#xff0c;对于初学者来说强烈建议大家从上一篇的概念开始看起&#xff0c;上一篇主要解释了冯诺依曼体系以及操…