Spring Boot 常用注解 主要分为以下几类:
- Spring 核心注解
- Spring Boot 相关注解
- Spring MVC 相关注解
- Spring Data JPA 相关注解
- Spring 事务管理
- Spring Security 相关注解
- Spring AOP 相关注解
- Spring 其他常用注解
下面是详细分类和表格展示👇:
1. Spring 核心注解
注解 | 说明 |
---|
@Component | 标注通用组件,Spring 容器会自动扫描并注册为 Bean |
@Service | 标注服务层组件,作用和 @Component 相同,但语义更明确 |
@Repository | 标注持久层(DAO)组件,主要用于数据访问层,Spring 还会对其异常进行转换 |
@Controller | 标注控制层组件,用于 MVC Controller |
@RestController | @Controller + @ResponseBody ,用于返回 JSON 数据的 RESTful API |
@Configuration | 标注配置类,可替代 XML 配置文件 |
@Bean | 在 @Configuration 类中使用,用于手动定义 Bean |
@ComponentScan | 指定 Spring 自动扫描的包路径,默认扫描当前包及其子包 |
2. Spring Boot 相关注解
注解 | 说明 |
---|
@SpringBootApplication | Spring Boot 核心注解,包含 @Configuration 、@EnableAutoConfiguration 、@ComponentScan |
@EnableAutoConfiguration | 自动配置,根据类路径下的依赖自动配置 Spring Boot 应用 |
@ConditionalOnClass | 条件加载,当指定类存在时才进行 Bean 的自动配置 |
@ConditionalOnMissingBean | 条件加载,当容器中不存在指定 Bean 时才创建 |
@SpringBootTest | 用于测试 Spring Boot 应用 |
@EnableConfigurationProperties | 使 @ConfigurationProperties 注解的类生效 |
3. Spring MVC 相关注解
注解 | 说明 |
---|
@RequestMapping | 映射请求路径,可以用于类或方法级别 |
@GetMapping | @RequestMapping(method = RequestMethod.GET) 的缩写 |
@PostMapping | @RequestMapping(method = RequestMethod.POST) 的缩写 |
@PutMapping | @RequestMapping(method = RequestMethod.PUT) 的缩写 |
@DeleteMapping | @RequestMapping(method = RequestMethod.DELETE) 的缩写 |
@PatchMapping | @RequestMapping(method = RequestMethod.PATCH) 的缩写 |
@RequestParam | 获取请求参数,用于 GET 或 POST 请求 |
@PathVariable | 获取路径参数,例如 /user/{id} |
@RequestBody | 接收 JSON 请求体,用于 POST 或 PUT 请求 |
@ResponseBody | 将返回值转换为 JSON,返回 JSON 格式数据 |
4. Spring Data JPA 相关注解
注解 | 说明 |
---|
@Entity | 标识实体类,与数据库表映射 |
@Table | 指定表名,如果不指定,默认使用类名 |
@Id | 标识主键 |
@GeneratedValue | 自动生成主键,可指定策略 (AUTO , IDENTITY , SEQUENCE , TABLE ) |
@Column | 指定数据库字段名,如果不指定,默认使用属性名 |
@OneToOne | 一对一 关联关系 |
@OneToMany | 一对多 关联关系 |
@ManyToOne | 多对一 关联关系 |
@ManyToMany | 多对多 关联关系 |
@Query | 自定义 SQL 查询 |
@Transactional | 事务管理(见下文) |
5. Spring 事务管理
注解 | 说明 |
---|
@Transactional | 声明事务,可以加在类或方法上 |
@EnableTransactionManagement | 启用事务管理 |
6. Spring Security 相关注解
注解 | 说明 |
---|
@EnableWebSecurity | 开启 Spring Security |
@EnableGlobalMethodSecurity | 启用方法级安全 |
@PreAuthorize | 方法级权限控制,如 @PreAuthorize("hasRole('ADMIN')") |
@Secured | 方法级安全控制,如 @Secured({"ROLE_ADMIN"}) |
@RolesAllowed | 方法级安全控制,等同于 @Secured |
7. Spring AOP 相关注解
注解 | 说明 |
---|
@Aspect | 定义 AOP 切面 |
@Pointcut | 定义切点 |
@Before | 前置通知 |
@After | 后置通知 |
@AfterReturning | 返回通知 |
@AfterThrowing | 异常通知 |
@Around | 环绕通知 |
8. Spring 其他常用注解
注解 | 说明 |
---|
@Value | 注入配置值 |
@PropertySource | 引入外部配置文件 |
@Autowired | 自动注入 Bean |
@Qualifier | 指定 Bean 名称 进行注入 |
@Primary | 设置多个 Bean 的优先级 |
@Scope | 指定 Bean 的作用域(singleton 、prototype 、request 、session 等) |
@Lazy | 懒加载 Bean |
总结
分类 | 主要作用 |
---|
Spring 核心注解 | 定义 Bean、配置类、组件扫描等 |
Spring Boot 相关注解 | Spring Boot 自动配置、启动类相关 |
Spring MVC 相关注解 | 处理 HTTP 请求、参数、返回值 |
Spring Data JPA 相关注解 | ORM 映射、数据查询 |
Spring 事务管理 | 事务控制 |
Spring Security 相关注解 | 权限控制、安全认证 |
Spring AOP 相关注解 | 切面编程 |
Spring 其他常用注解 | 配置管理、依赖注入 |