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

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{
   
    ...

}


http://www.kler.cn/a/597544.html

相关文章:

  • 避雷 :C语言中 scanf() 函数的错误❌使用!!!
  • Axios 和 跨域 这两个概念
  • IDEA 快捷键ctrl+shift+f 无法全局搜索内容的问题及解决办法
  • 自用基于 TypeScript 的 WebSocket 客户端封装
  • 数据结构--顺序查找
  • 【C语言】深入理解指针(一):从基础到高级应用
  • 【第19节】windows sdk编程:文件I/O
  • 麒麟操作系统作为服务器,并且需要在浏览器上调试 MATLAB
  • Linux 内核源码阅读——ipv4
  • Linux系统管理与编程10:任务驱动综合应用
  • Github 2025-03-19 C开源项目日报 Top4
  • GPT-5 将免费向所有用户开放?
  • 雷池SafeLine-自定义URL规则拦截非法请求
  • 计算机网络——通信基础和传输介质
  • 深入理解 Collections.emptyList():优雅处理空列表的利器!!!
  • 【Nodejs】2024 汇总现状
  • SAP SD学习笔记33 - 预詑品(寄售物料),预詑品引渡(KB),预詑品出库(KE)
  • Nginx基于SSL的TCP代理
  • 数据结构-----哈希表和内核链表
  • Unity热更新方案HybridCLR+YooAsset,从零开始,保姆级教程,纯c#开发热更