1.Web开发方面
@Controller:用于标注控制层组件。
@RestController:是@Controller 和 @ResponseBody 的结合体,返回 JSON 数据时使用。
@RequestMapping:用于映射请求 URL 到具体的方法上,还可以细分为:
@GetMapping:只能用于处理 GET 请求
@PostMapping:只能用于处理 POST 请求
@DeleteMapping:只能用于处理 DELETE 请求
@ResponseBody:直接将返回的数据放入HTTP响应正文中,一般用于返回JSON数据。
@RequestBody:表示一个方法参数应该绑定到 Web 请求体。
@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”),这里的name就是路径参数。
@RequestParam:用于接收请求参数。比如@RequestParam(name = "key") String key,这里的 key 就是请求参数。
2.容器类注解
@Component:标识一个类为 Spring 组件,使其能够被 Spring 容器自动扫描和管理。
@Service:标识一个业务逻辑组件(服务层)。比如@Service("userService"),这里的 userService 就是 Bean 的名称。
@Repository:标识一个数据访问组件(持久层)。
@Autowired:按类型自动注入依赖。
@Configuration:用于定义配置类,可替换XML配置文件。
@Value:用于将 Spring Boot 中 application.properties 配置的属性值赋值给变量。
3.AOP方面的注解
@Aspect 用于声明一个切面,可以配合其他注解一起使用,比如:
@After:在方法执行之后执行。
@Before:在方法执行之前执行。
@Around:方法前后均执行。
@PointCut:定义切点,指定需要拦截的方法。
4.事务注解
主要就是 @Transactional,用于声明一个方法需要事务支持。