Spring Boot 提供了一系列注解来简化开发和配置。以下是一些常见的 Spring Boot 注解及其功能和使用场景:
-
@SpringBootApplication
- 功能:组合了
@Configuration
、@EnableAutoConfiguration
和@ComponentScan
,用于定义 Spring Boot 应用的主类。 - 使用场景:在 Spring Boot 应用的入口类上使用。
- 功能:组合了
-
@RestController
- 功能:组合了
@Controller
和@ResponseBody
,用于创建 RESTful web 服务。 - 使用场景:用于控制器类上,表示该控制器中的方法返回的对象直接作为 HTTP 响应的正文。
- 功能:组合了
-
@RequestMapping
- 功能:用于映射 HTTP 请求到控制器的处理方法上,可以指定请求的路径、方法等。
- 使用场景:用于控制器类或方法上,定义请求的路由规则。
-
@GetMapping / @PostMapping / @PutMapping / @DeleteMapping
- 功能:分别用于处理 HTTP GET、POST、PUT 和 DELETE 请求。
- 使用场景:用于控制器的方法上,指定该方法处理特定类型的 HTTP 请求。
-
@Autowired
- 功能:自动注入依赖的 Bean。
- 使用场景:用于字段、构造函数、设置方法上,实现依赖注入。
-
@Service / @Repository / @Controller
- 功能:分别用于标记服务层、数据访问层和控制层的组件。
- 使用场景:用于类上,表示该类属于特定的业务层。
-
@Value
- 功能:注入外部配置的值,如配置文件中的属性。
- 使用场景:用于字段或方法参数上,注入配置文件中的值。
-
@Configuration
- 功能:标记配置类,可以包含一个或多个
@Bean
注解的方法。 - 使用场景:用于自定义配置类上,定义 Bean 的创建方式。
- 功能:标记配置类,可以包含一个或多个
-
@Bean
- 功能:在配置类中标记一个方法,该方法的返回值将被注册为 Spring 应用上下文中的 Bean。
- 使用场景:用于配置类的方法上,定义 Bean 的实例。
-
@Profile
- 功能:指定 Bean 的激活 Profile。
- 使用场景:用于类或方法上,指定该类或方法在特定的 Profile 下才激活。
-
@Conditional
- 功能:根据条件判断是否创建 Bean。
- 使用场景:用于自动配置类或自定义配置类上,控制配置的激活条件。
-
@PropertySource
- 功能:指定配置文件的位置,可以加载外部的配置文件。
- 使用场景:用于配置类上,指定配置文件的来源。
-
@Import
- 功能:导入其他配置类。
- 使用场景:用于配置类上,组合多个配置类。
-
@Scheduled
- 功能:标记定时任务的方法。
- 使用场景:用于方法上,表示该方法是一个定时执行的任务。
-
@EnableScheduling
- 功能:启用定时任务的支持。
- 使用场景:用于配置类上,启用 Spring 的定时任务功能。
-
@Async
- 功能:标记异步执行的方法。
- 使用场景:用于方法上,表示该方法应该异步执行。
-
@EnableAsync
- 功能:启用异步方法的支持。
- 使用场景:用于配置类上,启用 Spring 的异步方法执行功能。
-
@Cacheable
- 功能:标记可以被缓存的方法。
- 使用场景:用于方法上,表示该方法的返回值可以被缓存。
-
@EnableCaching
- 功能:启用缓存的支持。
- 使用场景:用于配置类上,启用 Spring 的缓存功能。
-
@Transactional
- 功能:标记事务性的方法。
- 使用场景:用于方法上,表示该方法应该在一个事务中执行。
-
@EnableTransactionManagement
- 功能:启用声明式事务管理。
- 使用场景:用于配置类上,启用 Spring 的声明式事务管理。
-
@ResponseStatus
- 功能:用于设置 HTTP 响应的状态码。
- 使用场景:用于异常类或控制器类上,定义异常的 HTTP 状态码。
-
@ExceptionHandler
- 功能:用于全局或局部异常处理。
- 使用场景:用于方法上,处理特定的异常。
-
@ControllerAdvice
- 功能:用于定义全局异常处理、数据绑定或数据验证的类。
- 使用场景:用于类上,定义全局的异常处理逻辑。
-
@PathVariable
- 功能:用于从 URL 路径中提取变量。
- 使用场景:用于控制器方法的参数上,提取 URL 路径中的值。
-
@RequestParam
- 功能:用于从请求参数中提取变量。
- 使用场景:用于控制器方法的参数上,提取请求参数的值。
-
@RequestBody
- 功能:用于将请求体绑定到方法参数。
- 使用场景:用于控制器方法的参数上,将 HTTP 请求的正文绑定到参数。
-
@ResponseBody
- 功能:指示方法的返回值应该作为响应体返回。
- 使用场景:用于控制器方法上,将方法的返回值直接作为 HTTP 响应的正文。