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

SpringMVC中的常用注解

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";
    }
    

相关文章:

SpringMVC中的常用注解

Java知识点总结:想看的可以从这里进入 目录3.2、常用的注解3.2、常用的注解 Controller:代表此类是一个控制器,需要配置包的扫描。Spring MVC 是通过组件扫描机制查找应用中的控制器类的 在Spring6.0之后要求控制层必须添加该注解才会被识别成…...

English Learning - L2-3 英音地道语音语调 小元音 [ʌ] [ɒ] [ʊ] [ɪ] [ə] [e] 2023.02.27 周一

English Learning - L2-3 英音地道语音语调 小元音 [ʌ] [ɒ] [ʊ] [ɪ] [ə] [e] 2023.02.27 周一课前活动练习方法大小元音总结小元音准备工作[ʌ] 中元音发音技巧对应单词的发音对应句子的发音常见的字母组合[ɒ] 后元音发音技巧对应单词的发音对应句子的发音常见的字母组合…...

fastadmin后台登录页修改

直接替换就行 <!DOCTYPE html> <html lang"{$config.language}"> <head>{include file"common/meta" /}<style type"text/css">body {color: #999;background-color: #f1f4fd;background-size: cover;}a {color: #444;…...

Java 面向对象(OOP)的三大特性

封装 所谓封装&#xff0c;意思就是隐藏内部细节&#xff0c;在编程中&#xff0c;指利用抽象数据类型将数据和基于数据的操作封装在一起&#xff0c;使其构成一个不可分割的独立实体&#xff0c;并尽可能地隐藏内部的细节&#xff0c;只保留一些对外接口使之与外部发生联系。…...

Java:openjdk: error: Student is abstract; cannot be instantiated;java编译环境

文章目录编译环境jdkopenjdk错误代码小心javac -verbos编译环境 jdk 需要安装的javac 在java-devel 包里 [root10 ~]# rpm -qf /usr/bin/javac file /usr/bin/javac is not owned by any package [root10 ~]# ll /usr/bin/javac lrwxrwxrwx. 1 root root 23 Jun 15 09:52 /us…...

28个案例问题分析---019---临时解决方案和最终解决方案--思想

临时解决方案与最终解决方案一&#xff1a;背景介绍二&#xff1a;临时解决方案&#xff1f;最终解决方案&#xff1f;概念如何选择三&#xff1a;总结一&#xff1a;背景介绍 项目中&#xff0c;出现了一个线上问题。 用户登陆之后看不到课程。重新登陆就可以看到课程。出现这…...

计算机网络的166个概念你知道几个 第四部分

HTML&#xff1a;HTML 称为超文本标记语言&#xff0c;是一种标识性的语言。它包括一系列标签&#xff0e;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的 Internet 资源连接为一个逻辑整体。HTML 文本是由 HTML 命令组成的描述性文本&#xff0c;HTML 命令可以说…...

Lenovo 联想-IdeaPad-Y530电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。硬件型号驱动情况主板联想-IdeaPad-Y530处理器Intel 酷睿2双核 T9400已驱动内存2GB已驱动硬盘2TB HP EX950 PCI-E Gen3 x4 NVMe SSD已驱动显卡NVIDIA GeForce 9300M GS无法驱动声卡Realtek ALC888无法驱动网卡RTL8168H Giga…...

mac M1 nvm安装教程,避坑

mac M1 nvm 安装问题 新款的mac搭载了苹果自研的芯片&#xff0c;放弃了intel的x86芯片&#xff0c;那之前的软件难免会存在兼容性问题。 鄙人有幸踩了第一个坑。 在通过nvm 安装不同版本的node 时&#xff0c;出现了问题。 问题一&#xff1a;先说一下 nvm的安装问题&#…...

【项目精选】基于网络爬虫技术的网络新闻分析(视频+论文+源码)

点击下载源码 基于网络爬虫技术的网络新闻分析主要用于网络数据爬取。本系统结构如下&#xff1a; &#xff08;1&#xff09;网络爬虫模块。 &#xff08;2&#xff09;中文分词模块。 &#xff08;3&#xff09;中3文相似度判定模块。 &#xff08;4&#xff09;数据结构化存…...

【Python - Matplotlib】P2 plot 折线图

Matplotlib绘制折线图折线图完整代码与效果基础折线图设定横纵坐标设置中文显示添加网格添加描述信息再添加一个城市设置两个折线图前言 上一节内容主要围绕介绍 Matplotlib 的画板结构。 链接&#xff1a;https://blog.csdn.net/weixin_43098506/article/details/129331576 本…...

【Verilog】——模块,常量,变量

目录 1.模块 1.描述电路的逻辑功能 2. 门级描述 3.模块的模板​编辑 2.关键字 3.标识符 4.Verilog源代码的编写标准 5.数据类型 1.整数常量​ 2.参数传递的两种方法 3.变量 4.reg和wire的区别 5.沿触发和电平触发的区别​ 6.memory型变脸和reg型变量的区别​ 1.模块 1.描…...

论文投稿指南——中文核心期刊推荐(电影、电视艺术)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…...

Pip install 和Conda install 总结

版本一 conda install xxx&#xff1a;这种方式安装的库都会放在/Users/orion-orion/miniforge3/pkgs目录下。我们在我们的虚拟环境中要用到或下载时先到该路径下去找&#xff0c;若有则直接将其复制到我们的虚拟环境中包得存放位置: ~/site-packages/。若没有&#xff0c;则先…...

嵌入式系统实验——【玄武F103开发板】实现两个LED小灯闪烁

目录一、实验文件main.cstm32f10x.h二、实验思路&#xff08;一&#xff09;打开两个LED小灯1.在玄武F103开发板上找到LED0、LED1对应的GPIO控制寄存器2.找到GPIOB、GPIOE的地址3.打开APB2外设时钟的使能寄存器4.对GPIO寄存器进行设置对端口输出寄存器进行设置&#xff08;二&a…...

数组之双指针题

文章目录一、最长连续不重复子序列1.题目介绍2.思路3.二、长度最小的子数组1.题目介绍2.思路3.代码三、数组元素的目标和1.题目介绍2.思路3.代码总结其实在之前我写过不少双指针得题解&#xff0c;刷题专练之数组移除元素 刷题专练之翻转题练习这两篇文章的题解基本就是双指针法…...

真实需求和梦想实现满足

多少的时光和岁月中都不曾认真系统的深度思考自己的真实需求和欲望之间是否一致&#xff0c;随着时间的流逝才发现自己追求的是一场空&#xff0c;自己的真实需求并不是苦苦追求的东西&#xff0c;这也是当梦想照进现实&#xff01;欲望是无善无恶的&#xff0c;不必为了满足自…...

[ant-design-vue] tree 组件功能使用

[ant-design-vue] tree 组件功能使用描述环境信息相关代码参数说明描述 是希望展现一个树形的菜单&#xff0c;并且对应的菜单前有复选框功能&#xff0c;但是对比官网的例子&#xff0c;我们在使用的过程中涉及到对半选中情况的处理&#xff1a; 半选中状态&#xff1a; 选中…...

QT父子窗口事件传递与事件过滤器

处理监控系统的时候遇到问题&#xff0c;在MainWidget中创建多个子Widget的时候&#xff0c;原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理&#xff0c;但调试后发现如果子Widget重新实现了事件方法&#xff0c;就直接处理掉事件了&#xff0c;没有进到Main…...

【2.4 golang中的循环语句for】

- 循环语句for 1. 循环语句for 1.1.1. Golang for支持三种循环方式&#xff0c;包括类似 while 的语法。 for循环是一个循环控制结构&#xff0c;可以执行指定次数的循环。 语法 Go语言的For循环有3中形式&#xff0c;只有其中的一种使用分号。 for init; condition; pos…...

【Unity 贪吃蛇大作战模板】高并发IO游戏怎么做?拆解Snake Warz核心架构

Snake Warz IO 是一个基于 Photon Fusion v2 构建的多人在线贪吃蛇游戏完整模板。它不仅提供了可直接上线的游戏内容&#xff0c;还涵盖了完整的多人联机框架、AI系统、UI流程以及跨平台适配能力。该插件支持最多 10 名真实玩家与 30 个 AI 同场竞技&#xff0c;并提供多种游戏…...

攻克Hugo-PaperMod菜单故障:导航异常的系统化解决策略

攻克Hugo-PaperMod菜单故障&#xff1a;导航异常的系统化解决策略 【免费下载链接】hugo-PaperMod A fast, clean, responsive Hugo theme. 项目地址: https://gitcode.com/GitHub_Trending/hu/hugo-PaperMod Hugo-PaperMod作为一款轻量级静态站点生成主题&#xff0c;…...

避坑指南:用conda管理TensorFlow环境时如何避免FailedPreconditionError日志目录冲突

避坑指南&#xff1a;用conda管理TensorFlow环境时如何避免FailedPreconditionError日志目录冲突 在深度学习项目开发中&#xff0c;TensorFlow作为主流框架之一&#xff0c;其环境配置的稳定性直接影响开发效率。许多开发者习惯使用conda进行Python环境管理&#xff0c;但在Te…...

GORM实战避坑指南:从‘小白’到‘老鸟’必须知道的10个细节(含MySQL连接配置)

GORM实战避坑指南&#xff1a;从‘小白’到‘老鸟’必须知道的10个细节&#xff08;含MySQL连接配置&#xff09; 1. MySQL连接配置的隐藏陷阱 charsetutf8mb4的必要性 MySQL默认的utf8编码只支持最多3字节的字符&#xff0c;而emoji表情等特殊字符需要4字节存储。若不指定utf8…...

从CPU指令到C++代码:拆解 std::atomic fetch_add 在 x86 和 ARM 平台上的底层实现与性能差异

从CPU指令到C代码&#xff1a;拆解 std::atomic fetch_add 在 x86 和 ARM 平台上的底层实现与性能差异 在现代高性能并发编程中&#xff0c;原子操作是构建无锁数据结构和线程安全代码的基石。std::atomic 的 fetch_add 操作看似简单&#xff0c;但其底层实现却因硬件架构差异而…...

Dobby跨平台编译技术指南:从环境配置到多架构部署实践

Dobby跨平台编译技术指南&#xff1a;从环境配置到多架构部署实践 【免费下载链接】Dobby a lightweight, multi-platform, multi-architecture hook framework. 项目地址: https://gitcode.com/gh_mirrors/do/Dobby 一、基础认知&#xff1a;Hook框架与跨平台编译基础 …...

告别重复劳动:OpenClaw+nanobot批量重命名与整理照片实战

告别重复劳动&#xff1a;OpenClawnanobot批量重命名与整理照片实战 1. 为什么需要自动化照片整理 每次旅行回来&#xff0c;面对相机和手机里混杂的几百张照片&#xff0c;整理工作总是让人头疼。手动创建文件夹、按日期地点分类、重命名文件——这些重复劳动不仅耗时&#…...

虚拟机自动化新范式:CUA Computer SDK十分钟入门指南

虚拟机自动化新范式&#xff1a;CUA Computer SDK十分钟入门指南 【免费下载链接】cua Create and run high-performance macOS and Linux VMs on Apple Silicon, with built-in support for AI agents. 项目地址: https://gitcode.com/GitHub_Trending/cua/cua 在当今的…...

RabbitMQ MQTT插件实战:5分钟搞定物联网设备消息通信(含WebSocket配置)

RabbitMQ MQTT插件实战&#xff1a;5分钟搞定物联网设备消息通信&#xff08;含WebSocket配置&#xff09; 物联网设备通信的核心挑战在于如何在资源受限的环境中实现高效、可靠的消息传递。RabbitMQ作为企业级消息中间件&#xff0c;通过MQTT插件完美解决了这一难题。本文将带…...

BlueDot BME280库深度解析:嵌入式多传感器驱动实践

1. BlueDot BME280 库技术解析&#xff1a;面向嵌入式工程师的多传感器驱动实践指南BME280 是博世&#xff08;Bosch&#xff09;推出的高精度环境传感器&#xff0c;集成温度、相对湿度与气压三参数测量能力&#xff0c;广泛应用于气象站、IoT终端、无人机姿态补偿及室内环境监…...