Spring Boot 注解2025 年 3 月 18 日 | 6 分钟阅读 Spring Boot 注解是一种元数据形式,提供有关程序的数据。换句话说,注解用于提供程序的补充信息。它不是我们开发的应用程序的一部分。它不会直接影响它们所注解的代码的操作。它不会改变编译程序的行为。 在本节中,我们将讨论一些重要的 Spring Boot 注解,我们将在本教程后面使用它们。 核心 Spring 框架注解@Required:它应用于 bean 的 setter 方法。它表示被注解的 bean 必须在配置时填充所需的属性,否则它会抛出异常 BeanInitilizationException。 示例 @Autowired:Spring 通过提供 @Autowired 注解来提供基于注解的自动装配。它用于在 setter 方法、实例变量和构造函数上自动装配 Spring bean。当我们使用 @Autowired 注解时,Spring 容器通过匹配数据类型来自动装配 bean。 示例 @Configuration:这是一个类级别的注解。被 @Configuration 注解的类被 Spring 容器用作 bean 定义的来源。 示例 @ComponentScan:当我们需要扫描包中的 bean 时使用。它与 @Configuration 注解一起使用。我们还可以指定要扫描 Spring 组件的基础包。 示例 @Bean:这是一个方法级别的注解。它是 XML <bean> 标签的替代品。它告诉方法生成一个由 Spring 容器管理的 bean。 示例 Spring 框架原型注解@Component:这是一个类级别的注解。它用于将 Java 类标记为 bean。被 @Component 注解的 Java 类在 classpath 中被找到。Spring 框架会将其拾取并在应用程序上下文中配置为 Spring Bean。 示例 @Controller:@Controller 是一个类级别的注解。它是 @Component 的特化。它将一个类标记为 Web 请求处理程序。它通常用于提供网页。默认情况下,它返回一个字符串,指示要重定向的路由。它主要与 @RequestMapping 注解一起使用。 示例 @Service:它也用于类级别。它告诉 Spring 该类包含业务逻辑。 示例 @Repository:这是一个类级别的注解。Repository 是直接访问数据库的 DAOs(数据访问对象)。Repository 执行所有与数据库相关的操作。 Spring Boot 注解- @EnableAutoConfiguration:它自动配置 classpath 中存在的 bean 并将其配置为运行方法。在 Spring Boot 1.2.0 版本中,这个注解的使用减少了,因为开发人员提供了该注解的替代方案,即 @SpringBootApplication。
- @SpringBootApplication:它是 @EnableAutoConfiguration、@ComponentScan 和 @Configuration 三个注解的组合。
Spring MVC 和 REST 注解- @RequestMapping:它用于映射 Web 请求。它有许多可选元素,如 consumes、header、method、name、params、path、produces 和 value。我们将其与类和方法一起使用。
示例 - @GetMapping:它将 HTTP GET 请求映射到特定的处理方法。它用于创建获取资源的 Web 服务端点。它用于替代:@RequestMapping(method = RequestMethod.GET)
- @PostMapping:它将 HTTP POST 请求映射到特定的处理方法。它用于创建创建资源的 Web 服务端点。它用于替代:@RequestMapping(method = RequestMethod.POST)
- @PutMapping:它将 HTTP PUT 请求映射到特定的处理方法。它用于创建创建或更新资源的 Web 服务端点。它用于替代:@RequestMapping(method = RequestMethod.PUT)
- @DeleteMapping:它将 HTTP DELETE 请求映射到特定的处理方法。它用于创建删除资源的 Web 服务端点。它用于替代:@RequestMapping(method = RequestMethod.DELETE)
- @PatchMapping:它将 HTTP PATCH 请求映射到特定的处理方法。它用于替代:@RequestMapping(method = RequestMethod.PATCH)
- @RequestBody:它用于将 HTTP 请求与方法参数中的对象绑定。它内部使用 HTTP MessageConverters 来转换请求体。当我们用 @RequestBody 注解方法参数时,Spring 框架会将传入的 HTTP 请求体绑定到该参数。
- @ResponseBody:它将方法的返回值绑定到响应体。它告诉 Spring Boot 框架将返回对象序列化为 JSON 和 XML 格式。
- @PathVariable:它用于从 URI 中提取值。它最适合 RESTful Web 服务,其中 URL 包含路径变量。我们可以在一个方法中定义多个 @PathVariable。
- @RequestParam:它用于从 URL 中提取查询参数。它也称为查询参数。它最适合 Web 应用程序。如果 URL 中不存在查询参数,它可以指定默认值。
- @RequestHeader:它用于获取有关 HTTP 请求头的信息。我们将其作为方法参数使用。注解的可选元素有 name、required、value、defaultValue。对于头中的每个详细信息,我们应该指定单独的注解。我们可以在一个方法中多次使用它。
- @RestController:它可以被认为是 @Controller 和 @ResponseBody 注解的组合。@RestController 注解本身被 @ResponseBody 注解。它消除了为每个方法注解 @ResponseBody 的需要。
- @RequestAttribute:它将方法参数绑定到请求属性。它提供了从控制器方法方便地访问请求属性的功能。借助 @RequestAttribute 注解,我们可以访问在服务器端填充的对象。
Spring Boot 注解选择题1. 哪个注解用于标记声明一个或多个 @Bean 方法的配置类? - @RestController
- @Component
- @Configuration
- @Service
答案:C) 解释: @Configuration 注解表示一个类声明了一个或多个 @Bean 方法,Spring 容器可以处理这些方法以生成 bean 定义。
2. 哪个注解用于在 Spring Boot 应用程序中启用调度? - @EnableAsync
- @EnableScheduling
- @EnableCaching
- @EnableBatchProcessing
答案:B) 解释:@EnableScheduling 用于在 Spring Boot 应用程序中启用对计划任务的支持。
3. @SpringBootApplication 注解的目的是什么? - 将一个类标记为 Spring 配置类
- 启用 Spring Boot 自动配置和组件扫描
- 配置 Spring MVC 控制器
- 声明一个 Spring bean
答案:B) 解释: @SpringBootApplication 是一个方便的注解,它结合了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan,从而启用了自动配置和组件扫描。
4. 哪个注解用于将方法参数绑定到 Web 请求参数? - @RequestParam
- @PathVariable
- @RequestBody
- @ModelAttribute
答案:A) 解释: @RequestParam 用于将方法参数绑定到 Web 请求参数。
5.哪个注解用于处理 Spring MVC 控制器中的异常? - @ExceptionHandler
- @ControllerAdvice
- @RestController
- @ResponseStatus
答案:A) 解释: @ExceptionHandler 用于处理 Spring MVC 控制器中方法抛出的异常。 |