Skip to content

spring框架下常见常用注解

一、Spring核心注解

注解说明
@Component/@Controller/@Service/@Repository类上注解,用于实例化Bean,分别对应通用组件、控制器、业务层、数据访问层
@Autowired字段上注解,根据类型进行依赖注入
@Qualifier结合@Autowired使用,根据名称进行依赖注入
@Scope标注Bean的作用范围(如singleton、prototype)
@Configuration指定当前类为Spring配置类,容器启动时加载该类注解
@ComponentScan指定Spring初始化时扫描的包路径
@Bean方法上注解,将方法返回值存入Spring容器
@Import导入的类会被Spring加载到IOC容器中
@Aspect/@Before/@After/@Around/@Pointcut用于AOP切面编程,定义切面、通知类型和切点表达式

二、SpringMVC常用注解

注解说明
@RequestMapping映射请求路径,可定义在类和方法上,类上定义则方法路径为父路径+方法路径
@RequestBody接收HTTP请求的JSON数据,转换为Java对象
@RequestParam指定请求参数的名称,绑定请求参数到方法形参
@PathVariable从请求路径中获取参数(如/user/{id}),传递给方法形参
@ResponseBody将Controller方法返回的对象转换为JSON响应给客户端
@RequestHeader获取指定的请求头数据
@RestController@Controller + @ResponseBody 的组合注解,用于前后端分离接口开发

三、SpringBoot核心注解

注解说明
@SpringBootApplicationSpringBoot启动类核心注解,组合了以下三个注解
@SpringBootConfiguration组合@Configuration,声明当前类为配置类
@EnableAutoConfiguration开启自动配置功能,可排除指定自动配置类
@ComponentScanSpring组件扫描,默认扫描当前引导类所在包及其子包

面试相关问题

  1. 问:Spring中@Component、@Controller、@Service、@Repository的区别是什么?答: 它们本质上都是@Component的衍生注解,作用都是实例化Bean,区别在于语义上的区分:@Component是通用组件,@Controller用于控制器层,@Service用于业务层,@Repository用于数据访问层,便于Spring进行组件扫描和分层管理。

  2. 问:@Autowired和@Qualifier的作用和区别是什么?答: @Autowired默认根据类型进行依赖注入,当容器中存在多个同类型Bean时,需要结合@Qualifier注解,通过Bean名称指定注入目标,解决歧义问题。

  3. 问:@RequestMapping和@GetMapping、@PostMapping的关系是什么?答: @GetMapping@PostMapping@RequestMapping的衍生注解,分别指定请求方式为GET和POST,简化了请求映射的写法,本质上都是通过@RequestMapping实现请求路径和方法的映射。

  4. 问:@SpringBootApplication注解由哪几个注解组成?各自的作用是什么?答: 由三个核心注解组成:@SpringBootConfiguration声明配置类,@EnableAutoConfiguration开启自动配置,@ComponentScan进行组件扫描,共同实现SpringBoot项目的启动和自动配置。

Powered by VitePress 1.6.4 | 持续更新中