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 请求头信息到方法参数上.

相关推荐
Yan-英杰4 分钟前
【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
java·数据库·sql
矛取矛求1 小时前
C++ 标准库参考手册深度解析
java·开发语言·c++
cijiancao1 小时前
23 种设计模式中的解释器模式
java·设计模式·解释器模式
南七行者1 小时前
对模板方法模式的理解
java·设计模式·模板方法
麻芝汤圆2 小时前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
努力的搬砖人.2 小时前
java如何实现一个秒杀系统(原理)
java·经验分享·后端·面试
哈哈哈哈哈哈哈哈哈...........2 小时前
【java】在 Java 中,获取一个类的`Class`对象有多种方式
java·开发语言·python
fallwind_of_july2 小时前
java项目分享-分布式电商项目附软件链接
java·redis·分布式·mongodb·elasticsearch·微服务·rabbitmq
武昌库里写JAVA2 小时前
Golang的消息中间件选型
java·开发语言·spring boot·学习·课程设计
工一木子2 小时前
大厂算法面试 7 天冲刺:第6天-树与图深度剖析——高频算法面试题 & Java 实战
java·算法·面试