Spring Boot 注释备忘单

Spring Boot 注释是简化开发、配置和安全的强大工具。下面是一份全面的备忘单,其中介绍了常见注释、它们的用途以及何时使用它们。

核心注解

注释:

**它的作用:**

将 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 合并为一个注释。

**何时使用:**

在主类上使用以表明它是 Spring Boot 应用程序的入口点。

@成分

**它的作用:**

将某个类标记为 Spring 管理的组件。

**何时使用:**

用于未被 `@Service`、`@Repository` 或 `@Controller` 覆盖的通用 Spring 管理组件。

@服务

**它的作用:**

将一个类标记为服务层组件。

**何时使用:**

用于定义服务层的业务逻辑。

@Repository

**它的作用:**

指示某个类是数据访问对象 (DAO)。

**何时使用:**

在持久层使用来与数据库交互。

@配置

**它的作用:**

表示某个类包含Spring配置。

**何时使用:**

用于定义 bean 配置并定制 Spring 上下文。

@豆

**它的作用:**

将方法标记为 Spring 管理 Bean 的生产者。

**何时使用:**

在带有 `@Configuration` 注释的类内使用来定义 bean。

@基本的

**它的作用:**

当存在多个相同类型的 bean 时,将某个 bean 标记为主 bean。

**何时使用:**

当有多个相同类型的 bean,并且想要指定默认值时使用。

@Autowired

**它的作用:**

将依赖项注入到 Spring 管理的 bean 中。

**何时使用:**

用于 Spring 管理的组件中的依赖注入。

@Qualifier

**它的作用:**

用于指定当存在多个候选对象时要注入哪个 bean。

**何时使用:**

与 `@Autowired` 一起使用来解决多个 bean 之间的歧义。

Web 层注释

@RestController

**它的作用:**

`@Controller` 和 `@ResponseBody` 的组合,使得该类提供 RESTful Web 服务。

**何时使用:**

在您想要定义 REST 端点的类上使用。

@控制器

**它的作用:**

将一个类标记为 Spring MVC 控制器。

**何时使用:**

在构建 Web 应用程序和处理 HTTP 请求时使用。

@RequestMapping

**它的作用:**

将 HTTP 请求映射到 `@Controller` 或 `@RestController` 的处理程序方法。

**何时使用:**

用于定义控制器的端点映射。

@GetMapping

**它的作用:**

将 HTTP GET 请求映射到处理程序方法。

**何时使用:**

用于只读操作,例如获取数据。

@PostMapping

**它的作用:**

将 HTTP POST 请求映射到处理程序方法。

**何时使用:**

用于创建或提交数据。

@PutMapping

**它的作用:**

将 HTTP PUT 请求映射到处理程序方法。

**何时使用:**

用于更新现有资源。

@DeleteMapping

**它的作用:**

将 HTTP DELETE 请求映射到处理程序方法。

**何时使用:**

用于删除资源。

@PatchMapping

**它的作用:**

将 HTTP PATCH 请求映射到处理程序方法。

**何时使用:**

用于资源的部分更新。

@PathVariable

**它的作用:**

从 URL 路径中提取一个值。

**何时使用:**

当您想要将 URL 路径参数传递给方法时使用。

@RequestParam

**它的作用:**

从请求中提取查询参数。

**何时使用:**

当您想要从 URL 中提取查询参数时使用。

@RequestBody

**它的作用:**

将 HTTP 请求的主体映射到 Java 对象。

**何时使用:**

用于将请求数据(例如 JSON)绑定到方法参数。

@ResponseBody

**它的作用:**

表示方法的返回值应该与HTTP响应主体绑定。

**何时使用:**

在非 @RestController 类中使用来返回 JSON 或其他格式。

@ResponseStatus

**它的作用:**

用 HTTP 状态代码标记方法或异常类。

**何时使用:**

用于设置自定义 HTTP 响应代码。

@Exception处理程序

**它的作用:**

处理控制器方法中抛出的异常。

**何时使用:**

在控制器类中使用来定义自定义错误处理。

@CrossOrigin

**它的作用:**

为特定控制器或方法启用跨域资源共享 (CORS)。

**何时使用:**

用于允许对您的 API 进行跨源请求。

安全注解

@EnableWebSecurity

**它的作用:**

启用 Spring Security 的 Web 安全功能。

**何时使用:**

在配置类上使用来定义身份验证和授权规则。

@Secured

**它的作用:**

根据角色限制对方法的访问。

**何时使用:**

用于仅允许具有特定角色的用户访问。

@PreAuthorize

**它的作用:**

在调用方法之前应用更复杂的访问控制表达式。

**何时使用:**

当访问控制需要超出角色的条件时使用,例如检查用户权限或属性。

复制代码

**它的作用:**

调用方法后应用访问控制表达式。

**何时使用:**

当访问控制取决于方法的结果时使用。

@RolesAllowed

**它的作用:**

按照 JSR-250 标准定义允许访问的角色。

**何时使用:**

用作基于角色的访问控制的“@Secured”的替代方案。

@EnableGlobalMethodSecurity

**它的作用:**

启用方法级安全注释,如“@Secured”、“@PreAuthorize”和“@PostAuthorize”。

**何时使用:**

在安全配置中使用来激活方法级安全性。

@WithMockUser

**它的作用:**

为了测试目的设置模拟认证用户。

**何时使用:**

在测试用例中使用来模拟经过身份验证的用户。

持久层注解

@实体

**它的作用:**

将某个类标记为 JPA 实体。

**何时使用:**

用于将类映射到数据库表。

@桌子

**它的作用:**

自定义 JPA 实体中的表名称和其他表属性。

**何时使用:**

与 `@Entity` 一起使用来自定义表映射。

@ID

**它的作用:**

将字段标记为 JPA 实体中的主键。

**何时使用:**

用于定义实体的主键字段。

@GeneratedValue

**它的作用:**

指定主键值的生成方式。

**何时使用:**

与 `@Id` 一起使用来定义生成策略(例如 `AUTO`、`IDENTITY`)。

@柱子

**它的作用:**

自定义 JPA 实体中字段的列映射。

**何时使用:**

用于指定列属性,如名称、长度等。

@Transactional

**它的作用:**

定义方法的事务边界。

**何时使用:**

使用方法或类来自动处理交易。

本备忘单涵盖了基本 Spring Boot 注释,包括核心、Web、安全和持久层。掌握这些,您将编写更干净、更安全、更高效的 Spring 应用程序。祝您编码愉快!