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

相关推荐
eguid_11 小时前
【开源项目分享】JNSM1.2.0,支持批量管理的jar包安装成Windows服务可视化工具,基于Java实现的支持批量管理已经安装服务的可视化工具
java·开源·jar·1024程序员节·windows服务·jar包安装成服务·exe安装成服务
杯莫停丶2 小时前
设计模式之:享元模式
java·设计模式·享元模式
遥远_2 小时前
Java微服务无损发布生产案例
java·spring·微服务·优雅停机·java微服务无损发布
苹果醋32 小时前
学习札记-Java8系列-1-Java8新特性简介&为什么要学习Java8
java·运维·spring boot·mysql·nginx
武子康2 小时前
Java-159 MongoDB 副本集容器化 10 分钟速查卡|keyfile + –auth + 幂等 init 附 docker-compose
java·数据库·mongodb·docker·性能优化·nosql·1024程序员节
m0_748233642 小时前
C++ 模板初阶:从函数重载到泛型编程的优雅过渡
java·c++·算法·1024程序员节
以己之3 小时前
11.盛最多水的容器
java·算法·双指针·1024程序员节
摇滚侠3 小时前
全面掌握PostgreSQL关系型数据库,设置远程连接,笔记05,笔记06
java·数据库·笔记·postgresql
shepherd1263 小时前
破局延时任务(上):为什么选择Spring Boot + DelayQueue来自研分布式延时队列组件?
java·spring boot·后端·1024程序员节
机灵猫3 小时前
微服务中的服务熔断、降级与限流
java·数据库·微服务