Java常见注解汇总

TwindT Ranking++
前言

寒假在写算法的同时也在看Spring, 因为之前并没有学过Java所以即使有语言基础但是对于注解全然不知, 所以打算在这里写一篇汇总.

后续有空了打算将Java自带的注解和Spring等补充上来, 估计应该是开学到学校后才会来写了.

2025/2/24
开始是抄了一些别人写好的, 但是写了半小时后觉得不太好于是删了, 但是我没那么多时间整理, 所以决定后面遇到一个记录一个……

Spring

Spring-Mvc

  • @Controller 将类标明为控制器

  • @RequestParam 主要是用来接收数据, 它可以直接接收参数 (@RequestParam String id), 也可以接收指定名字的参数 (@RequestParam(name = “id”) String fooId)

  • 当然他也支持接收一大堆数据, 类, List等; 但是通常是接收来自requestHeader中, 即请求头, 所以主要用于GET请求

  • 同时该参数默认写入的参数名字是存在的(True), 如果不存在则会报错, 但是我们可以修改(False), 此时如果不存在则为 NULL

  • @RequestBody 接收来自requestBody请求体中的数据比如: application/json、application/xml、applicatioin/x-www-form-urlencoded等类型的数据, 基本和@RequestParam一致。

  • @Controller 标记控制器, 将控制器交给 Spring 容器管理

  • @RequestMapping 给控制器方法设置请求路径, 放在方法或类上方。用于类上,表示类中的所有控制器方法都是以该地址作为父路径。

  • 也可以单独使用指定的Mapping 如: @GetMapping()、@PostMapping()、@PutMapping()

  • @ModelAttribute 作用1: 设置指定方法在控制器其他方法前执行, 位置在方法上方; 作用2: 从Model模型中获取数据给参数赋值, 位置在方法参数前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Controller
// 作用1
@RequestMapping("/~")
public class ControllerTest {
@ModelAttribute
public void before(){
System.out.println("前置方法");
}
}

// 作用2
@Controller
@RequestMapping("/~")
public class MyController6 {
// 前置方法向Model中设置数据
@ModelAttribute
public void before(Model model){
model.addAttribute("name","~");
}
// 该参数不是从请求中获取,而是从Model中获取
@RequestMapping("/~")
public String Test(@ModelAttribute("name") String name){
System.out.println(name);
return ~;
}
}
  • @ResponseBody 方法返回的对象转换为 JSON 格式, 放在某个方法上边, 可以将返回的对象类型转换为 JSON 格式

  • @RestController 如果每个返回对象都为 JSON 格式, 可以在类上边加上该注解, 可以省略 @ResponseBody

  • @ControllerAdvice 根据所给规则拦截控制器, 不写则默认拦截所有控制器, 可搭配 @ExceptionHandler 实现全局控制器异常处理

  • @ExceptionHandler 加在方法上, 表示该方法是处理异常的方法,属性为处理的异常类

目录
Java常见注解汇总