SpringMVC 中的常用注解和用法

@Component:通用的组件注解,标识一个类为 Spring 组件,会被自动扫描并创建 Bean。(工具类)
@Repository:表示持久层的注解,用于标识数据访问组件。(和数据交互)
@Service:表示服务层的注解,用于标识业务逻辑组件。(客服中心)
@Controller:表示控制器层的注解,用于标识 Web 控制器组件。验证用户请求数据的正确性(安保系统)
@Configuration:表示配置类的注解,用于定义配置类,替代 XML 配置文件。

@RequestMapping

是SpringWebMVC应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的.

含义:映射HTTP请求的URL到一个具体的处理方法。

可以用于类级别和方法级别。类级别的注解可以定义通用的请求映射前缀。

路由映射:当⽤⼾访问⼀个URL时,将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射.

java 复制代码
@Controller  
@RequestMapping("/example")  
public class MyController {  
    @RequestMapping("/hello")  
    public String hello() {  
        return "hello";  
    }  
}

@GetMapping、@PostMapping(@RequestMapping(value="/xxx",method="RequestMethod.POST) 、@PutMapping、@DeleteMapping:分别用于处理 GET、POST、PUT、DELETE 请求,简化 @RequestMapping 的使用。

@RequestParam

  • 含义:用于从请求中获取参数值,映射到方法的参数上。

  • 用法:在方法参数前使用,可以指定参数名、是否必需等属性。

1.使⽤ @RequestParam 进⾏参数重命名时,请求参数只能和 @RequestParam 声明的名称⼀致,才能进⾏参数绑定和赋值.

  1. 使⽤ @RequestParam 进⾏参数重命名时,参数就变成了必传参数.

@ResponseBody

  • 含义:指示方法返回的对象应该直接写入HTTP响应体中,而不是视图渲染。

  • 用法:通常用于返回JSON或XML格式的数据。

    java 复制代码
    @RequestMapping("/data")  
    @ResponseBody  
    public Map<String, Object> getData() {  
        Map<String, Object> data = new HashMap<>();  
        data.put("key", "value");  
        return data;  
    }

@PathVariable

主要作⽤在请求URL路径上的数据绑定

  • 含义:用于将请求URL中的占位符参数绑定到处理器方法中的参数上。

@RequestPart

上传⽂件

java 复制代码
@RequestMapping("/m9")
public String getfile(@RequestPart("file") MultipartFile file) throws IOException {
    //获取⽂件名称
    String fileName = file.getOriginalFilename();
    //⽂件上传到指定路径
    file.transferTo(new File("D:/temp/" + file.getOriginalFilename()));
    return "接收到⽂件名称为: "+fileName;
}

@SessionAttribute

  • 含义:用于将模型中的属性存储到会话中,以便多个请求之间共享相同的模型属性。

  • 用法:只能用于类上,无法用于方法上。可以指定要存储的属性名称或类型。

@RequestHeader

提供了一种方便的方式来获取并绑定 HTTP 请求头信息到方法参数上.

相关推荐
豐儀麟阁贵7 分钟前
2.6 代码注释与编码规
java·开发语言
程序员三明治8 分钟前
【Mybatis从入门到入土】ResultMap映射、多表查询与缓存机制全解析
java·sql·缓存·mybatis·resultmap·缓存机制·多表查询
华仔啊14 分钟前
Java 重试机制没写对,线上很容易出问题!这份生产级方案请收好
java·后端
你不是我我16 分钟前
【Java 开发日记】什么是线程池?它的工作原理?
java·开发语言
Seven9718 分钟前
剑指offer-35、数组中的逆序对
java·leetcode
梵得儿SHI32 分钟前
Java 反射机制深度解析:从运行时 “解剖” 类的底层逻辑
java·开发语言·反射·反射机制·private·类成员·反射的三大核心功能
豆沙沙包?39 分钟前
2025年--Lc188--931. 下降路径最小和(多维动态规划,矩阵)--Java版
java·矩阵·动态规划
JAVA学习通1 小时前
Spring AI 1.0 GA 深度解析:Java生态的AI革命已来
java·人工智能·spring·springai
黄焖鸡能干四碗1 小时前
MES生产执行制造系统建设(Java+Mysql)
java·大数据·开发语言·信息可视化·需求分析
舒克日记1 小时前
基于springboot的民谣网站的设计与实现
java·spring boot·后端