Spring Boot 是一个用于快速开发 Spring 应用程序的框架,它提供了一系列的注解来简化配置和开发过程。按照类、方法、参数的分类方式,以下是 Spring Boot 中常用的注解及其作用:
类级别的注解
-
@SpringBootApplication
:- 作用:用于标记一个类为 Spring Boot 应用的主类,它启动 Spring Boot 应用程序。
- 使用场景:通常在项目的入口类上使用,它包含了
@Configuration
、@EnableAutoConfiguration
和@ComponentScan
注解。
-
@Configuration
:- 作用:用于标记一个类为配置类,该类可以包含多个
@Bean
注解方法。 - 使用场景:当需要定义 Bean 或者配置 Spring 上下文时使用。
- 作用:用于标记一个类为配置类,该类可以包含多个
-
@Component
:- 作用:用于标记一个类为 Spring 组件,Spring 容器会自动扫描并注册该类为 Bean。
- 使用场景:当需要创建一个 Bean,但不希望它被 Spring 自动发现时使用。
-
@Service
:- 作用:用于标记一个服务类,它是
@Component
的特化,表示这是一个提供业务逻辑的服务类。 - 使用场景:当创建一个服务层组件时使用。
- 作用:用于标记一个服务类,它是
-
@Repository
:- 作用:用于标记一个 DAO 类,它是
@Component
的特化,表示这是一个数据访问对象。 - 使用场景:当创建一个数据访问层组件时使用。
- 作用:用于标记一个 DAO 类,它是
-
@Controller
:- 作用:用于标记一个类为 Spring MVC 控制器,该类中的方法返回视图名称。
- 使用场景:当创建一个 Web 控制器时使用。
-
@RestController
:- 作用:用于标记一个类为 RESTful Web 服务控制器,该类中的方法返回对象直接作为 HTTP 响应体。
- 使用场景:当创建一个 REST API 控制器时使用。
方法级别的注解
-
@Bean
:- 作用:用于标记一个方法为 Bean 的定义,该方法返回的对象会被注册为 Spring 应用程序上下文中的 Bean。
- 使用场景:在配置类中,当需要创建一个 Bean,但不希望它被 Spring 自动发现时使用。
-
@RequestMapping
:- 作用:用于将 HTTP 请求映射到 MVC 控制器的处理方法上。
- 使用场景:在控制器方法上,用于指定请求的 URL 路径。
-
@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
:- 作用:分别用于将 HTTP GET、POST、PUT、DELETE 请求映射到处理方法上。
- 使用场景:在控制器方法上,用于指定请求的类型和 URL 路径。
参数级别的注解
-
@PathVariable
:- 作用:用于将请求 URL 中的模板变量映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取 URL 中的变量。
-
@RequestParam
:- 作用:用于将请求参数区数据映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取请求参数。
-
@RequestBody
:- 作用:用于将 HTTP 请求正文映射到功能处理方法的参数上,通常用于处理 JSON、XML 等格式的请求体。
- 使用场景:在控制器方法参数上,用于接收请求体。
-
@RequestHeader
:- 作用:用于将请求头中的数据映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取请求头。
-
@CookieValue
:- 作用:用于将请求中的 Cookie 数据映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取 Cookie 数据。
-
@ModelAttribute
:- 作用:用于将模型属性数据映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于将模型属性绑定到方法参数。
-
@SessionAttribute
:- 作用:用于将 HttpSession 中的属性映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取 HttpSession 中的属性。
@RequestAttribute
:- 作用:用于将 Request 中的属性映射到功能处理方法的参数上。
- 使用场景:在控制器方法参数上,用于提取 Request 中的属性。