SpringBoot 的核心注解有哪些?

Bean 相关:

1. @Component

功能:最基础的通用型注解,用于标识一个类作为 Spring 组件(Bean)

特点

  • 被标注的类会被 Spring 自动扫描并注册为 Bean
  • 适用于任何层次的组件(当没有更具体的注解可用时)
  • 是其他更具体注解(如@Controller、@Service、@Repository)的元注解

2. @ComponentScan

功能:配置 Spring 扫描哪些包及其子包中的组件。

特点

  • 通常用在主配置类(@SpringBootApplication 注解的类)上
  • 可以指定 basePackages 或 basePackageClasses 来定义扫描范围
  • 默认扫描当前包及其子包

3. @Controller

功能:专门用于标记控制器层组件,处理 HTTP 请求

特点

  • 是 @Component 的特化版本
  • 通常与 @RequestMapping 等注解配合使用
  • 返回的通常是视图名称(用于服务端渲染)

4. @RestController

功能:专门用于 RESTful 风格的控制器

特点

  • 组合了 @Controller 和 @ResponseBody
  • 方法返回值会直接序列化为 JSON/XML 写入响应体
  • 适用于构建 API 接口

拓展:@ RestController 和 @ Controller的区别

5. @Repository

功能:专门用于数据访问层(DAO 层)组件。

特点

  • 是 @Component 的特化版本
  • 提供额外的异常转换(将数据访问异常转换为 Spring 的统一异常体系)
  • 通常与 JPA、MyBatis 等持久层框架一起使用

6. @Bean

功能:方法级别注解,用于显式声明一个 Bean。

特点

  • 通常用在配置类(@Configuration 注解的类)中
  • 方法名默认作为 Bean 的名称
  • 可以自定义 Bean 的名称、作用域、初始化/销毁方法等
  • 适用于第三方库的组件或需要复杂初始化的 Bean

其余重要的 Bean 相关注解:

注入相关

1. @Autowired

功能:Spring 框架提供的自动装配注解,用于自动注入依赖对象

特点

  • 默认按类型(byType)进行自动装配
  • 可以用于构造器、字段、setter 方法和普通方法
  • 是 Spring 特有的注解
  • 如果找到多个匹配类型,会尝试按名称匹配

2. @Resource

功能:JDK 提供的注解(JSR-250),功能类似于 @Autowired。

特点

  • 默认按名称(byName)进行装配
  • 如果没有指定 name 属性,则退化为按类型(byType)装配
  • 是 Java 标准注解,不依赖 Spring
  • 只能用于字段和 setter 方法,不能用于构造器

3. @Qualifier

功能:与 @Autowired 配合使用,用于解决多个同类型 Bean 的歧义性问题。

特点

  • 当容器中存在多个相同类型的 Bean 时,用于指定具体的 Bean
  • 可以用于字段、方法参数和构造器参数
  • 通常与自定义限定符注解一起使用

读取配置相关:

1. @Value 注解

基本功能

@Value 是 Spring 框架提供的注解,用于直接注入单个配置值。

2. @ConfigurationProperties 注解

基本功能

@ConfigurationProperties 是 Spring Boot 提供的注解,用于将一组相关的配置属性批量绑定到一个 Java Bean 上。

Web相关

@RequestMapping

特性:

  • 可以用在类级别或方法级别
  • 支持所有 HTTP 方法 (GET, POST, PUT, DELETE 等)
  • 可通过属性配置:value/path: 指定请求路径 method: 指定 HTTP 方法 params: 指定请求参数条件 headers: 指定请求头条件 consumes: 指定请求的 Content-Typeproduces: 指定响应的 Content-Type

@GetMapping(理同PostMapping、DeleteMapping、PutMapping)

  • 专门处理 HTTP GET 请求
  • 等价于 @RequestMapping(method = RequestMethod.GET)

其他常用注解

全部评论
mark
点赞 回复 分享
发布于 06-12 23:09 云南

相关推荐

评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务