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 应用程序。祝您编码愉快!