当前位置: 首页 > article >正文

Spring Boot 注解

Spring Boot 是基于 Spring 框架的开发框架,提供了许多注解来简化配置和开发。以下是一些常见的 Spring Boot 注解,包括它们的作用和简单介绍:

1. @SpringBootApplication

  • 作用:标识一个 Spring Boot 应用的入口点。它是一个组合注解,包含了 @Configuration@EnableAutoConfiguration@ComponentScan
  • 常见用途:通常用于主类,启动 Spring Boot 应用。

2. @RestController

  • 作用:这是 @Controller@ResponseBody 的组合注解,用于定义一个 RESTful 风格的控制器。它的所有方法都会自动返回 JSON 格式的响应。
  • 常见用途:创建 Web 控制器,处理 HTTP 请求。

3. @RequestMapping(及其派生注解)

  • 作用:用于定义 URL 路径与方法之间的映射关系。
  • 常见用途:处理 HTTP 请求,支持 GET、POST、PUT、DELETE 等方法。
  • 派生注解
    • @GetMapping:处理 GET 请求
    • @PostMapping:处理 POST 请求
    • @PutMapping:处理 PUT 请求
    • @DeleteMapping:处理 DELETE 请求

4. @Autowired

  • 作用:自动注入 Spring 容器中的 Bean。
  • 常见用途:自动注入依赖的服务、组件等。

5. @Component@Service@Repository@Controller

  • 作用:用于标识类作为 Spring 容器中的 Bean,Spring 会自动管理这些类的生命周期。
  • 常见用途
    • @Component:用于普通的 Bean。
    • @Service:用于服务层 Bean。
    • @Repository:用于数据访问层 Bean。
    • @Controller:用于控制器类。

6. @Value

  • 作用:用于注入外部配置文件(如 application.properties)的值。
  • 常见用途:将配置文件中的值注入到类的字段中。

7. @Configuration

  • 作用:标记当前类为 Spring 配置类,通常用于声明 Bean。
  • 常见用途:定义 Bean,配置 Spring 容器。

8. @Bean

  • 作用:在配置类中声明一个 Bean,Spring 会自动管理该 Bean 的生命周期。
  • 常见用途:定义并注册一个 Bean。

9. @EnableAutoConfiguration

  • 作用:启用 Spring Boot 的自动配置机制。通常不需要手动使用,因为 @SpringBootApplication 已经包含了它。
  • 常见用途:开启自动配置,减少手动配置工作。

10. @Profile

  • 作用:根据不同的环境(如开发、生产)加载不同的 Bean 配置。
  • 常见用途:为特定环境定义 Bean,例如开发环境和生产环境的不同配置。

11. @Transactional

  • 作用:标记一个方法或类需要支持事务管理,确保方法执行过程中出现异常时,事务会回滚。
  • 常见用途:在服务层方法中使用事务管理。

12. @RequestParam

  • 作用:从 HTTP 请求中获取查询参数,通常用于处理 GET 请求。
  • 常见用途:获取请求参数。

13. @PathVariable

  • 作用:获取 URL 路径中的参数,通常用于 RESTful 风格的 API。
  • 常见用途:处理 URL 中的动态参数。

14. @SpringBootTest

  • 作用:用于测试 Spring Boot 应用,启动一个完整的 Spring 容器进行集成测试。
  • 常见用途:进行集成测试,加载完整的应用上下文。

15. @EnableScheduling

  • 作用:启用 Spring 的定时任务调度功能。
  • 常见用途:在应用中执行定时任务。

16. @EnableAspectJAutoProxy

  • 作用:启用 Spring AOP(面向切面编程),自动代理 AspectJ。
  • 常见用途:启用 AOP 功能。

17. @Cacheable

  • 作用:用于方法级别的缓存,Spring 会根据方法参数来缓存返回结果。
  • 常见用途:缓存方法的返回结果,减少重复计算。

http://www.kler.cn/a/403406.html

相关文章:

  • MetaGPT实现多动作Agent
  • C++ STL - vector/list讲解及迭代器失效
  • VIT中的cls token是怎么起作用的
  • 51c大模型~合集76
  • 分层架构 IM 系统之架构演进
  • IDEA2023 SpringBoot整合MyBatis(三)
  • 问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
  • 安卓开发实现图像处理相关功能
  • 三十九、Python(pytest框架-中)
  • Spark核心组件解析:Executor、RDD与缓存优化
  • k8s1.31版本最新版本集群使用容器镜像仓库Harbor
  • Go Web服务中如何优雅平滑重启?
  • 基于Quartus Prime18.1的安装与FPGA的基础仿真(联合Modelsim)教程
  • js实现购物车功能
  • Qt问题:不同文件中相同命名空间的多个 Q_NAMESPACE
  • ThinkPHP框架和Laravel框架区别
  • pytorch训练的双卡,一个显卡占有20GB,另一个卡占有8GB,怎么均衡?
  • Elasticsearch面试内容整理-核心概念与数据模型
  • K8S基础概念和环境搭建
  • Flink基础面试题
  • Excel - VLOOKUP函数将指定列替换为字典值
  • 信息与网络安全
  • Java数据库连接(Java Database Connectivity,JDBC)
  • 使用chrome 访问虚拟机Apache2 的默认页面,出现了ERR_ADDRESS_UNREACHABLE这个鸟问题
  • unity3d————范围检测
  • 实现金蝶云与MySQL的无缝数据集成