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)其他常用注解