恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Spring的常用注解

  • 首页
  • 资讯中心
  • /
  • Spring的常用注解

相关资讯

esptool 使用教程:ESP32 固件烧录、Flash 加密与 OTP 编程,5 个命令 2026/8/24 14:42:36
RAG 的魔鬼藏在细节里——Chunking 策略与检索优化 2026/8/24 14:42:36
Python中文分词神器jieba,一秒切词,爽到飞起 2026/8/24 14:37:36

最新资讯

智慧校园安防与能耗革新:智能门锁如何破解高校后勤管理痛点
抖音批量下载工具完整教程:4 步跑通无水印全站归档
如何把 ASI 插件加载进任意游戏:Ultimate ASI Loader 配置与使用
MMD Tools 插件完整指南:在 Blender 中导入 .pmx 模型与 .vmd 动作
pgvector Docker 镜像标签避坑指南
ezdxf:10 分钟用 Python 批处理 CAD DXF 图纸的完整指南

今日推荐

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Spring的常用注解

发布时间:2026/8/24 14:42:36
Spring的常用注解 介绍我们知道Spring生态圈或者说全家桶非常的好用其中注解贯彻其中下面我来简单归纳一下Spring的常用注解。Bean管理相关Component万能通用组件当你给一个普通的 Java 类加上Component注解后Spring 在启动时会通过组件扫描机制ComponentScan自动发现它利用反射机制在内存中把它new出来并作为一个 Bean 存放到 IoC 容器中。以下是其三个特化的形式理论上可以互相替换但不建议要保持新人友好原则嘛。ServiceService用在业务逻辑层Service 层。RepositoryRepository用在数据访问层DAO 层自带数据库异常转换功能。ControllerController用在 Web 控制层处理 HTTP 请求。注入依赖方面AutowiredAutowiredSpring 提供的自动装配注解默认按类型byType注入。如果同类型有多个 Bean会报错。底层注入逻辑Autowired 的自动装配并非魔法而是基于 Spring 的依赖注入机制和 Java 反射技术实现的。其核心流程主要依赖一个关键的后置处理器AutowiredAnnotationBeanPostProcessor。具体过程如下1.扫描与元数据封装当 Spring 容器启动并创建 Bean 时AutowiredAnnotationBeanPostProcessor 会扫描当前类中所有带有 Autowired 注解的字段、方法或构造函数。它会将这些注入点的信息如类型、名称等封装成 InjectionMetadata 对象并缓存起来。2.属性填充注入阶段在 Bean 实例化之后、初始化之前Spring 会调用该后置处理器的 postProcessProperties 方法。它会遍历之前缓存的 InjectionMetadata通过反射机制在 Spring 的 IoC 容器中查找匹配的 Bean然后将其赋值给目标字段或作为参数传入方法中。为何同类型多个注入会报错Autowired 默认的装配策略是 按类型自动装配byType。当容器中存在多个相同类型的 Bean 时就会触发以下逻辑1.按类型查找Spring 首先根据字段或参数的类型去容器中查找。如果只找到一个直接注入如果找不到且 requiredtrue默认值则抛出 NoSuchBeanDefinitionException 异常。2.按名称消歧byName如果找到了多个同类型的 BeanSpring 会尝试将注入点的变量名作为 Bean 的名称去进一步匹配。例如如果你写的是 Autowired private UserService userService1;Spring 会尝试在多个同类型 Bean 中寻找名为 userService1 的那个。3.抛出异常如果变量名也无法匹配到唯一的 BeanSpring 就会陷入“不知道该注入哪一个”的困境从而抛出 NoUniqueBeanDefinitionException 异常。4.如何解决多个同类型 Bean 的冲突下面介绍的Qualifier可以用来解决这个问题QualifierQualifier配合Autowired使用当有多个同类型 Bean 时指定按名称byName注入具体的 Bean。ResourceResourceJava 原生标准注解非 Spring 独有默认按名称byName注入找不到名称再按类型注入不需要配合 Qualifier。一句话总结Autowired和Resource的用法区别Autowired 是 Spring 的亲儿子按类型找找不到再按名字找Resource 是 Java 的干儿子按名字找找不到再按类型找。在实际开发中优先使用 Autowired 进行构造函数注入需要按名称注入时再用 Resource。配置相关注解ConfigurationConfiguration声明一个类为配置类用来替代传统的 XML 配置文件里面通常配合 Bean 使用。PropertySource注解会告诉Spring从指定的类路径下加载jdbc.properties这个文件BeanBean注解的作用是告诉Spring这个方法的返回值是一个需要交给Spring容器管理的Bean对象Spring容器会自动调用这个方法把方法返回的对象创建出来存入IOC容器中。就比如以下两个方法是第三方的不是我写的但是我可以用Bean把他们的返回值注入到IOC容器中让它帮我创建。ValueValue用于注入配置文件中的基本数据类型或字符串属性值如 Value(${app.name})。如果数据量小的情况不用ConfigurationProperties适合批量注入的情况的情况下我们用Value和Configuration来配合注入文件。PropertySource将配置文件如 application.yml中的属性批量绑定到一个 Java 对象上比 Value 更适合管理大量配置。PropertySource和Value配合使用PropertySource 注解本身是直接标注在类上生效的它的作用就是加载指定的外部配置文件这里就是 jdbc.properties让配置文件中的属性能够被 Spring 容器识别后续才能通过 Value 注入属性值。PropertySource 负责做第一步指定要加载哪个外部properties配置文件Value 负责做第二步把配置文件中对应key的属性值注入到成员变量中。PropertySource 配合 Value 确实比硬编码写数据库连接信息要方便很多而如果要比一个个写 Value 更便捷的方式可以用 Spring Boot 提供的 ConfigurationProperties 批量注入属性这里讲的是基础注解不多赘述。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号