一、Spring Boot注解简介
1.1 什么是Spring Boot注解
Spring Boot注解是一种特殊的注释,用于指示Spring Boot框架应该如何配置应用程序。Spring Boot注解可以用于许多不同的方面,包括配置文件、控制器、服务、数据访问、安全性和测试。
1.2 Spring Boot注解的作用
Spring Boot注解的作用是简化应用程序的配置和开发过程。它们减少了开发人员必须手动执行的任务数量,使得应用程序的开发和部署变得更加简单和快速。Spring Boot注解还提供了一种标准的方式来进行配置,减少了配置错误的可能性。
二、Spring Boot常用注解详解
注解 | 解释 |
@SpringBootApplication | 组合注解,包括@Configuration、@EnableAutoConfiguration和@ComponentScan注解,用于快速搭建SpringBoot应用 |
@RestController | 用于声明一个基于REST的控制器类,相当于@Controller和@ResponseBody的组合注解 |
@RequestMapping | 用于将HTTP请求映射到控制器类或者具体的处理方法上 |
@GetMapping | 用于映射GET请求到具体的处理方法上 |
@PostMapping | 用于映射POST请求到具体的处理方法上 |
@PutMapping | 用于映射PUT请求到具体的处理方法上 |
@DeleteMapping | 用于映射DELETE请求到具体的处理方法上 |
@PathVariable | 用于将URL中的模板变量映射到方法参数中 |
@RequestParam | 用于将请求参数映射到方法参数中 |
@RequestBody | 用于将HTTP请求正文映射到方法参数中 |
@ResponseBody | 用于将方法返回值序列化为HTTP响应正文 |
@ResponseStatus | 用于定义HTTP响应的状态码和原因短语 |
@ExceptionHandler | 用于处理控制器类中未捕获的异常 |
@Component | 通用的Spring组件注解,用于标识一个类为Spring的管理组件 |
@Repository | 用于标识一个DAO组件,让Spring自动生成相应的Bean对象 |
@Service | 用于标识一个服务组件,让Spring自动生成相应的Bean对象 |
@Controller | 用于标识一个控制器组件,让Spring自动生成相应的Bean对象 |
@Configuration | 用于标识一个Java配置类,替代传统的xml配置 |
@Bean | 用于在Java配置类中声明一个Bean对象 |
@Autowired | 用于将Bean对象自动注入到被修饰的属性中 |
@Qualifier | 用于指定具体的Bean对象注入到被修饰的属性中 |
@Value | 用于将配置文件中的属性值注入到被修饰的属性中 |
@EnableAutoConfiguration | 开启SpringBoot的自动配置功能 |
@EnableConfigurationProperties | 用于将配置文件中的属性值映射到JavaBean中 |
@Import | 用于将其他的配置类导入到当前配置类中 |
@ImportResource | 用于导入传统的xml配置文件 |
@Profile | 用于标识一个Bean对象在哪个环境下激活 |
@Conditional | 用于根据条件来判断是否创建一个Bean对象 |
@EnableAsync | 开启异步方法的执行 |
@Async | 用于标识一个方法是异步方法 |
@EnableScheduling | 开启定时任务的执行 |
@Scheduled | 用于标识一个方法为定时任务 |
@Transactional | 用于标识一个方法需要事务管理 |
@Cacheable | 用于缓存方法的返回值 |
@CachePut | 用于更新缓存中的对象 |
@CacheEvict | 用于从缓存中删除对象 |
@EnableCaching | 开启缓存功能 |
@EnableAspectJAutoProxy | 开启AOP切面编程功能 |
@Aspect | 用于定义一个切面 |
@Pointcut | 用于定义一个切点 |
@Before | 用于定义一个前置通知 |
@AfterReturning | 用于定义一个后置通知 |
@AfterThrowing | 用于定义一个异常通知 |
@After | 用于定义一个最终通知 |
@Around | 用于定义一个环绕通知 |
@Order | 用于定义切面的执行顺序 |
@RestControllerAdvice | 用于定义一个全局的异常处理类 |
@ControllerAdvice | 用于定义一个控制器的异常处理类 |
@ModelAttribute | 用于将模型数据绑定到控制器方法的参数上 |
@SessionAttributes | 用于声明哪些模型属性需要放到HttpSession中 |
@CookieValue | 用于将cookie值映射到控制器方法的参数上 |
@RequestHeader | 用于将HTTP头部信息映射到控制器方法的参数上 |
@ResponseStatus | 用于设置HTTP响应状态码 |
@ControllerAdvice | 用于定义一个全局异常处理器 |
@ExceptionHandler | 用于处理控制器类中未捕获的异常 |
@InitBinder | 用于定制数据绑定器 |
@RequestMapping | 用于将HTTP请求映射到控制器方法上 |
@SessionAttribute | 用于将模型数据绑定到HttpSession中 |