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

Java主流开发框架之请求响应常用注释

1.@RestController

标记一个类为 REST 控制器,处理 HTTP 请求并直接返回数据(如 JSON/XML),而不是视图(如 HTML),一般是放在类的上边

@RestController
public class UserController {

    @GetMapping("/hello") //后续GetMapping过多可以写一个共有的路径在类的外边
    public String hello() {
        return "Hello, World!";
    }
}

2.@RequestMapping

用于将 HTTP 请求映射到特定的处理方法(Controller 方法),指定请求的URL路径,定义 HTTP 方法类型(GET、POST 等),路径一般和下面的方法名相同

//数组参数
@RestController
@RequestMapping("/url")
public class array {
    @RequestMapping("/array")
    public String array(String[] hobby) {
        System.out.println(Array.toString(hobby));
        return "OK";
    }
}

3.@RequestParam

用于绑定 HTTP 请求参数到控制器方法参数的注解,通常用于处理 URL 中的查询参数。如果方法形参和请求参数名称不匹配,可以使用该注解。
提取请求参数:从 URL 查询字符串(如  /user?id=123 )或表单数据中获取值。
参数绑定:将参数值自动转换为方法参数的类型(支持基本类型、对象、集合等)。
验证与默认值:支持参数必填性检查和默认值设置。

//集合参数
@RestController
@RequestMapping("/url")
public class array {
    @RequestMapping("/list")
    public String list(@RequestParam List<String> hobby) {
        System.out.println(hobby);
        return "OK";
    }
}

//设置默认值
public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer pageSize){

        ...

}

4.@DateTimeFormat

用于处理日期和时间类型参数绑定的注解,主要用于将字符串格式的请求参数。
指定日期格式:定义字符串与日期对象的转换规则。
支持多种类型:兼容  java.util.Date 、 java.time.* (JSR-310)等日期/时间类。
自动类型转换:Spring 在绑定请求参数时自动应用格式规则。(pattern="yyyy-MM-dd HH:mm:ss"

@RequestMapping("/dataParm")
public String dataParam(@(DataTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")LocalDataTime updataTime){
    System.out.println(updataTime);
    return "OK";

}

5.@RequestBody

一般绑定到方法的参数前,用于接收客户端发送的JSON、XML 等数据动转换封装为 Java的实体对象。
数据绑定:将请求体内容(如 JSON)反序列化为 Java 对象。
支持多种格式:通过  HttpMessageConverter  处理 JSON(默认)、XML、表单等数据格式。

@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){
       System.out.println(user);
        return "ok";
}



Public class User{
    private String name;
    private Integer age;
    ...
}
//json格式数据:
{
    "name":"jack"
    "age":"16"
    ...
}

6. @PathVariable  

用于从 URI 模板中提取变量值并绑定到方法参数的注解。
提取路径变量:从 URL 的占位符(如  /user/{id} )中获取动态值。
类型自动转换:将字符串形式的路径变量转换为方法参数类型(如  String  →  Long )。

@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
    // 根据 id 查询用户
    return userService.findById(id);
}

7.@Resource

依赖注入,给对象的属性注入数据,可以定义在字段上,也可以定义在方法上。一般用在注入dao层数据源,跟@Autowired相似,区别就是@Autowired默认是先根据类型,而@Resource默认是先根据名称

三层架构(Controller-Service-Dao)

8.@Autowired 

运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器

9.@Service

标记一个类作为服务层,交给IOC容器管理,成为IOC容器的bean对象(成为Spring容器管理的Bean),可以通过依赖注入(如 @Autowired)在其他地方使用它,service运行的时候依赖Dao层,需要IOC容器提供

@RestController
Public class EmpController{
    @Autowired //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)
    private EmpService empservice;
    
    ...
}

10.@Component

交给IOC容器管理,成为IOC容器的bean对象,Controller运行的时候依赖Service层,需要IOC容器提供

@Component
public class EmpServiceA implements EmpService{
    @Autowried //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)
    private EmpDao empdao;
    ...
}


@Component
public class EmpDaoA implements EmpDao{
   
    ...

}

相关文章:

  • 【LeetCode】大厂面试算法真题回忆(36)--相同数字的积木游戏
  • FFmpeg + ‌Qt‌ 简单视频播放器代码
  • 【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树
  • 如何在 Bash 中不依赖 curl 或 wget 发出 HTTP 请求并实现文件传输——/dev/tcp的妙用
  • illustrate:一款蛋白/核酸结构快速渲染为“卡通风格”的小工具
  • Ciura序列
  • 弱网测试:全链路实战、高阶策略与自动化落地
  • 多线程14(哈希表与文件操作IO)
  • CPU架构和微架构
  • 中颖SH366000介绍和使用全解
  • Web安全策略CSP详解与实践
  • HTTP请求过程详解
  • 构建自定义MCP天气服务器:集成Claude for Desktop与实时天气数据
  • /2要求:定义一个方法,根据id查找对应的用户信息 //如果存在,返回id //如果不存在,返回-1
  • 蓝桥杯 小球反弹
  • 278.缀点成线
  • uniapp 和 webview 之间的通信
  • 【1】Java 零基础入门学习(小白专用)
  • 新配置了一台服务器+域名共178:整个安装步骤,恢复服务
  • Docker逃逸
  • 匈牙利国会通过退出国际刑事法院的决定
  • 【社论】人工智能,年轻的事业
  • 习近平访问金砖国家新开发银行
  • 王毅:坚持金砖团结合作,改革完善全球治理
  • 普京发表声明感谢协助俄军收复库尔斯克州的朝鲜军人
  • 视觉周刊|2025上海车展的科技范