当前位置: 首页 > news >正文

吃透 Spring 高频注解(包含SpringMVC Spring Boot)

一、核心容器注解(Spring IoC 依赖注入、Bean 管理)

1. 组件注册注解(将类交给Spring容器管理,生成Bean)

注解作用说明
@Component通用组件注解,不属于三层架构的普通工具类使用,其余三个是它的衍生注解
@Controller标注控制器层(MVC控制层),接收前端请求
@Service标注业务逻辑层,封装业务代码
@Repository标注数据访问层(DAO层),操作数据库

补充:以上四个注解功能一致,仅用于代码分层区分语义;不加value默认类名首字母小写作为bean名称。

2. 包扫描注解

@ComponentScan

  • 作用:指定Spring需要扫描的包路径,自动识别包下带@Component系列注解的类,注册为Bean
  • SpringBoot项目内置默认扫描主启动类同级及下级所有包,一般无需手动配置

3. 依赖注入注解(给属性赋值、自动装配Bean)

注解作用说明
@Autowired类型自动注入Bean,Spring官方注解;可标注属性、构造方法、set方法;required=false允许注入为空
@Qualifier("beanName")配合@Autowired使用,多个同类型Bean时,通过Bean名称精准指定注入对象
@ResourceJSR规范注解,默认先按名称注入,找不到再按类型注入
@Value("${配置项}")读取properties/yml配置文件中的常量值,用于普通基本类型、字符串赋值

4. Bean生命周期与作用域

注解作用说明
@Scope指定Bean作用域:singleton单例(默认)、prototype多例、request、session
@PostConstructBean创建完成后执行初始化方法
@PreDestroyBean销毁前执行销毁方法

二、SpringMVC 常用web注解(请求接收、响应处理)

1. 请求映射注解

注解作用说明
@RequestMapping通用请求地址映射,可指定请求方式、路径、参数条件
@GetMapping简写,仅匹配GET请求
@PostMapping简写,仅匹配POST请求
@PutMapping简写,匹配PUT修改请求
@DeleteMapping简写,匹配DELETE删除请求

2. 获取请求参数注解

注解作用场景
@RequestParam获取普通请求参数(url拼接参数、表单参数)
@PathVariable路径变量取值,例:/user/{id}获取id值
@RequestBody接收前端JSON格式请求体,自动封装为Java对象(POST常用)
@RequestHeader获取请求头信息
@CookieValue获取Cookie数据

3. 响应与视图注解

注解作用说明
@ResponseBody将返回值直接转为JSON字符串响应前端,不跳转页面
@RestController组合注解 =@Controller+@ResponseBody;接口开发最常用,所有方法均返回JSON
@CrossOrigin解决前后端跨域问题

三、Spring事务注解

@Transactional

  1. 标注位置:业务层Service类/方法上
  2. 核心作用:开启声明式事务,方法执行出错自动回滚数据库操作
  3. 常用属性:
  • propagation:事务传播行为
  • isolation:事务隔离级别
  • rollbackFor:指定触发回滚的异常类型

四、SpringBoot 专属常用注解

注解作用
@SpringBootApplication启动类核心注解,组合:@Configuration+@EnableAutoConfiguration+@ComponentScan
@Configuration将当前类标记为配置类,可使用@Bean注册自定义Bean
@Bean写在配置类方法上,将方法返回对象注册为Spring容器Bean
@ConfigurationProperties(prefix = "xxx")批量读取yml/properties配置文件,绑定实体类属性
@EnableXXX开启各类自动配置:@EnableWebMvc@EnableTransactionManagement

五、AOP面向切面编程注解

注解作用
@Aspect标注当前类为切面类
@Before前置通知:目标方法执行前触发
@After后置通知:目标方法执行完毕后触发(无论是否异常)
@AfterReturning返回通知:方法正常执行成功后触发
@AfterThrowing异常通知:方法抛出异常时触发
@Around环绕通知:包裹目标方法,可手动控制方法执行
@Pointcut定义切入点表达式,统一配置要拦截的方法范围

六、注解使用简易数据流总结

  1. @SpringBootApplication启动项目 → 自动扫描包
  2. @Service/@Controller/@Repository将类交给容器生成Bean
  3. @Autowired完成依赖注入装配
  4. @GetMapping/@PostMapping接收前端请求
  5. @RequestBody接收JSON参数,Service层添加@Transactional管控事务
  6. @RestController返回JSON数据给到前端
http://www.jsqmd.com/news/1357114/

相关文章:

  • 晶圆边缘与中心芯片差异解析及优化方案
  • 污水处理自动加药控制系统设计:前馈+反馈复合控制实现
  • SpringBoot+Vue+MySQL全栈开发高校信息平台实践
  • 拯救者笔记本性能调优新方案:Lenovo Legion Toolkit全面指南
  • 一键式大模型脚本运行器:简化AI开发流程
  • C#多态-重载
  • UE5 Niagara粒子系统执行顺序与数据流核心解析
  • 如何用AI助手提升日本麻将水平?mahjong-helper实战指南
  • 数据中台与分布式架构的融合实践与优化
  • 常压立式火管采暖锅炉设计与应用指南
  • 生命涌现的小龙虾技能之【Frog Skin Moisture Assessment | 蛙类皮肤湿润度评估】简介
  • 近一周AI Coding行业动态与实用参考
  • Jenkins持续集成实战:自动化流水线搭建与优化
  • OpenRGB完整指南:一个软件控制所有RGB设备,告别厂商软件混乱
  • C语言实现国际象棋AI:从位棋盘到Alpha-Beta剪枝的实战指南
  • 2026届最火的AI辅助写作助手推荐榜单
  • 构建可观测AI应用:从成本、质量与性能监控到Gemini API实践
  • 降重降AIGC率AI工具测评
  • UAssetGUI:解锁Unreal Engine资产底层编辑与批量自动化处理
  • Vibe Coding实战指南:从AI编程工具配置到高效提示词工程
  • HK32F030M 芯片手册从 PDF 变成 Markdown:一次工具选型与混合管线的完整历程
  • AI芯片厂自建发电厂:算力竞争进入能源密集型新阶段
  • DAG上最长不下降子序列:结合图论与动态规划的GESP七级精讲
  • 飞渡科技51视界漂视网络三大平台发力数字孪生行业格局生变
  • 智能运维(AIOps)在制造业数字化转型中的实践与优化
  • Barlow字体家族:3种宽度×9种字重,如何为你的设计找到完美匹配?
  • Figma到Unity设计转换全攻略:原理、工具与高效工作流实践
  • Qwen3.5-9B破限版本地部署指南:Ollama+GGUF量化实战
  • 网站建设费用清单:从入门到精通,一文讲透到底要花多少钱
  • 2026年8月湖南省联通300M单宽带实测办理全流程 - 找卡家园