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 会根据方法参数来缓存返回结果。
  • 常见用途:缓存方法的返回结果,减少重复计算。
相关推荐
圆山猫1 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管2 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨2 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡2 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖3 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9853 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室5 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen6 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜6 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫7 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v