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 其他常用注解 | 配置管理、依赖注入 |