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 会根据方法参数来缓存返回结果。
  • 常见用途:缓存方法的返回结果,减少重复计算。
相关推荐
Grey Zeng5 小时前
Java SE 25新增特性
java·jdk·jdk新特性·jdk25
雨白6 小时前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
昵称为空C10 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默10 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
Java中文社群11 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
每天进步一点_JL12 小时前
JVM 类加载:双亲委派机制
java·后端
用户2986985301413 小时前
Java HTML 转 Word 完整指南
java·后端
渣哥13 小时前
原来公平锁和非公平锁差别这么大
java
渣哥13 小时前
99% 的人没搞懂:Semaphore 到底是干啥的?
java
J2K13 小时前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端