Spring Boot 常用注解分类

目录

1.核心注解:

@SpringBootApplication:一个复合注解,用于标识Spring Boot应用程序的入口点。它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,提供了自动配置和组件扫描的功能。

@Configuration:将类标识为配置类,类似于传统的XML配置文件,用于定义Bean的创建和配置。

@EnableAutoConfiguration:启用Spring Boot的自动配置机制,根据类路径和其他条件自动配置Spring应用程序。

@ComponentScan:扫描指定包及其子包下的组件(包括@Service、@Repository、@Component和@Controller等)。

2.配置相关注解:

@Value:用于将外部属性值注入到Spring Bean中。

@ConfigurationProperties:绑定外部配置文件中的属性到Java Bean。

@PropertySource:指定外部属性文件的位置。

@Conditional:根据条件动态添加或排除Bean的装配。

3.控制器相关注解:

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。

@RequestMapping:将HTTP请求映射到处理方法上。

@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。

@RequestParam:用于获取请求参数的值。

@PathVariable:用于获取URL路径变量的值。

@RequestBody:将请求体转换为Java对象。

@ResponseBody:将方法返回的对象转换为HTTP响应体。

4.数据访问相关注解:

@Entity:标识一个类作为实体类,在数据库中映射为表。

@Repository:标识一个类作为数据访问对象(DAO)。

@Autowired:自动装配依赖的Bean。

@Transactional:标识一个方法需要在事务中执行。

@Query:定义自定义的查询方法。

5.测试相关注解:

@RunWith:指定测试运行器。

@SpringBootTest:用于加载Spring应用程序的上下文,并提供测试支持。

@MockBean:模拟Bean,用于替代真实的Bean进行测试。

这些注解涵盖了Spring Boot应用程序开发的核心方面,通过合理使用这些注解,可以快速搭建和配置Spring Boot应用程序,并实现各种功能。

6.条件注解:

@ConditionalOnClass:当类路径中存在指定的类时才生效。

@ConditionalOnBean:当容器中存在指定的Bean时才生效。

@ConditionalOnProperty:当配置文件中指定的属性满足条件时才生效。

@ConditionalOnMissingBean:当容器中不存在指定的Bean时才生效。

7.AOP相关注解:

@Aspect:将一个类标识为切面。

@Pointcut:定义切点,即需要被拦截的方法。

@Before:在方法执行之前进行拦截。

@After:在方法执行之后进行拦截。

@Around:在方法执行前后进行拦截。

8.定时任务相关注解:

@Scheduled:定义定时任务的执行规则。

异步编程相关注解:

@Async:将方法标记为异步执行。

缓存相关注解:

@EnableCaching:启用缓存功能。

@Cacheable:标记方法的结果可被缓存。

这些注解可以根据具体的需求和场景选择使用,用于实现更多的功能和扩展。需要注意的是,在使用注解时要理解其作用和正确使用方式,以避免错误和不必要的麻烦。

9.消息队列相关注解:

@EnableJms:启用JMS消息队列功能。

@JmsListener:标识一个方法作为JMS消息监听器。

WebFlux相关注解(用于响应式编程):

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。

@RequestMapping:将HTTP请求映射到处理方法上。

@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。

@PathVariable:用于获取URL路径变量的值。

@RequestBody:将请求体转换为Java对象。

@ResponseBody:将方法返回的对象转换为HTTP响应体。

10.Spring Security相关注解:

@EnableWebSecurity:启用Web安全性配置。

@Secured:限制方法的访问权限。

@PreAuthorize:在方法执行之前进行权限检查。

@PostAuthorize:在方法执行之后进行权限检查。

11.Swagger注解(用于API文档生成):

@Api:用于标识Controller类,生成对应API文档。

@ApiOperation:用于标识Controller类中的方法,生成对应API操作的文档。

@ApiParam:用于标识Controller方法中的参数,生成对应API参数的文档。

12.Spring缓存相关注解:

@EnableCaching:启用Spring缓存功能。

@Cacheable:标识方法的结果应该被缓存。

@CachePut:标识方法的结果应该被放入缓存。

@CacheEvict:标识方法执行后应该移除缓存中的数据。

13.Spring定时任务相关注解:

@EnableScheduling:启用Spring定时任务功能。

@Scheduled:标识方法为定时任务,并设置触发时间规则。

Spring国际化相关注解:

@EnableMessageSource:启用国际化消息资源配置。

@ConfigurationProperties:用于将属性绑定到配置类中。

Spring WebSocket相关注解:

@EnableWebSocket:启用Spring WebSocket功能。

@Controller:标识类为WebSocket控制器。

@MessageMapping:标记方法用于处理特定消息类型。

14.Spring Cloud相关注解(用于微服务开发):

@EnableDiscoveryClient:启用服务注册和发现功能。

@EnableFeignClients:启用Feign客户端功能。

@EnableCircuitBreaker:启用熔断器功能。

@EnableConfigServer:启用配置中心功能。

这些注解涵盖了不同领域的功能和特性,可以根据具体的需求选择和使用。

Spring框架提供了丰富的注解,可以更高效地进行开发、配置和集成各种功能

相关推荐
葫芦和十三5 小时前
图解 MongoDB 21|选举与 failover:Primary 是怎么选出来的
后端·mongodb·agent
GetcharZp6 小时前
26k Star 开源内网穿透神器 NetBird,一分钟实现全球设备互联!
后端
考虑考虑7 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯7 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
lizhongxuan10 小时前
多Agent之间的区别
后端
青石路11 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
杨充12 小时前
1.面向对象设计思想
后端
IT_陈寒12 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
systemPro12 小时前
2.6亿条设备数据,历史查询从超时到50ms,我做了什么
后端
要阿尔卑斯吗13 小时前
提示词优化启示:为什么“按顺序输出“比“关键度评分“更有效
后端