SpringMVC常见的注解

一、Spring MVC

Spring Web MVC是基于ServletAPI构建的原始web 框架,一开始就包含在Spring 框架中,通常被称为"Spring MVC"。


1.MVC 是什么?

MVC(Model、View、Controller)是软件工程中的一种软件架构设计模型。它把软件系统分成三部分(Model 模型、View 视图、Controller 控制器)。

2.什么是Spring MVC ?

Spring MVC 是对MVC思想的一种具体实现。同时,Spring MVC 还是一个Web框架。

二、Spring MVC 的常见注解

1、@RequestMapping(类路径+方法路径)
①常见用法:

在浏览器的地址栏中输入:127.0.0.1:8080/test/hello

服务器收到请求时,路径为/test/hello的请求就会调用hello这个方法的代码。@RequestMapping 既可以修饰类,也可以修饰方法。

@RequestMapping 的url路径最前面可以不加/,Spring 程序启动时,会判断是否有/,如果最前面没有/,Spring 会自动拼接一个。

②@RequestMapping可以携带其他参数

@RequestMapping 既可以支持get请求,也可以接收post请求。同时,也可以支持其他请求。

如何指定GET请求或者POST请求呢?

测试工具可以使用Postman:

Download Postman | Get Started for Free

value:映射的url 。method:指定请求的method类型,如:get.post 等。

consumes:指定请求提交的内容类型。

produces:指定返回的内容类型。

Params:指定request 中必须包含某些参数值时,才会被该方法处理

headers:指定request中必须包含某种指定的header值,才会被该方法处理

2.@RestController

@RestController 的作用是返回数据。

@RestController由两个注解组成,一个是@Controller ,一个是@ResponseBody

@controller :定义一个控制器,把这个对象交个Spring 管理。

@ResponseBody :定义返回的是一个非视图。

如果给类加上Controller 注解,表示该类中的方法要返回视图。也可以给方法加上@ResponseBody的注解,效果与@RestController一致。

传递

三、前后端交互,传递参数的常见注解

1.@RequestParam :后端参数重命名

请求参数和@RequestParm 声明的名称一致时,才能进行赋值。同时,如果使用了该注解,就默认在发送请求时必须将该参数传输过来。如果不想传输,就可以修改required 为false.

复制代码
 public String hello(@RequestParam(value = "name1",required = false) String name1)

由此可见,如果前端的参数名称与后端的参数名称不一致,后端就接受不到数据。

但如果我们使用@RequestParm 参数注解,重命名。

如果前端传输的是集合对象,一定要使用@RequestParm进行参数绑定。

复制代码
@RequestMapping("/t7")
    public String test7(@RequestParam("list") List<Integer> list){
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        return "ok" ;
    }

2.@RequestBody 接收JSON类型的参数
复制代码
   public Object method7(@RequestBody Person person) {
 return person.toString();
}
3.@PathVariable 获取url参数

在路径中获取参数,用{参数名},同时,接收的参数要有方法中的参数一致,如果不一致,需要用@RequestParm

4.@RequestPart 上传文件
5.@CookieValue 从Cookie中获取值
复制代码
//传统方式获取cookie信息 
 @RequestMapping("/t3")
    public String test3(HttpServletRequest request, HttpServletResponse response){
        Cookie [] cookies =request.getCookies();
        return "ok";
    }
//使用注解获取cookie中a的Value值
    @RequestMapping("/t4")
    public String test4(@CookieValue("a") String a){
        
        return "ok";
    }
6.@SessionAttribute 获取Session值

同时可以使用HettpSesion 对象来获取。

复制代码
  public String test5(@SessionAttribute String a)
7.@RequestHeader 获取Header 中的值
复制代码
  @RequestMapping("/t6")
    public  String test6(@RequestHeader("User-Agent") String UserAgent){
        return UserAgent;
    }
8.@ResponseBody 返回数据

即是类注解,也是方法注解。返回数据可以是:

①text/html

②Json 对象

③常见的数据类型

等

相关推荐
Flynn Liang13 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
QCoding13 小时前
企业级Agent Evaluation实战:Agent能跑就能上线?AI Agent到底怎么测?
后端·spring
Flynn Liang20 小时前
Spring AI 上生产:限流熔断、密钥与成本治理、私有化/混合部署、降级与 Prompt 灰度架构全解
人工智能·spring·架构·高可用·springai·成本治理·生产架构
Flynn Liang20 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai
liangbo71 天前
Spring系列01:IoC 与 DI 到底解决了什么
java·spring
无所谓^_^1 天前
个人健康管理系统 | Springboot3 | Vue3
java·vue·毕业设计·springboot·课程设计·毕设·前后端分离
cakeism8251 天前
2026 中国企业 DevOps 平台选型:从工具链到一体化平台的决策框架
运维·servlet·devops
杨凯凡1 天前
Spring Boot 的 @Transactional 为什么会失效?从代理、自调用到异常回滚的排查实战
java·spring boot·spring·事务·后端开发
哦虎!1 天前
【JavaEE进阶】SpringBoot
spring
霸道流氓气质2 天前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring