news 2026/8/2 6:13:51

Spring IOC与DI核心注解速查表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring IOC与DI核心注解速查表

一、IOC创建对象的4个核心注解

  1. @Controller- 用于标注控制器层组件(Controller层)
  2. @Service- 用于标注业务逻辑层组件(Service层)
  3. @Repository- 用于标注数据访问层组件(DAO层)
  4. @Component- 用于标注非三层架构的其他地方(通用组件)

原理:这些注解本质都是@Component的衍生注解,用于声明Bean并交由Spring容器管理


二、@Scope注解 - 控制对象作用域

@Scope("singleton")// 单例模式(默认)@Scope("prototype")// 多例模式

作用:控制Bean是单例还是多例,解决对象线程安全问题


三、XML配置 - 注解扫描生效

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描指定包下的注解 --><context:component-scanbase-package="com.luo"/></beans>

关键点component-scan标签开启注解驱动,本质是BeanFactoryPostProcessor在操作


四、DI依赖注入注解

注解注入类型默认规则使用场景
@Value基本类型直接赋值字符串、数字等基本类型注入
@Autowired引用类型按类型注入(byType)同一类型Bean唯一时使用
@Resource引用类型按名字注入(byName)需要明确指定Bean名称时
@Qualifier配合@Autowired按名字注入同一接口多个实现类时精确定位

优势:相比XML配置,注解方式无需编写set方法,开发更高效


五、完整示例代码

@Service("userService")// 指定id为userService,默认是首字母小写的类名@Scope("singleton")publicclassUserServiceImplimplementsUserService{// 基本类型注入@Value("19")privateintage;// 引用类型自动注入(默认按类型)@AutowiredprivateUserDaouserDao;// 如果存在多个UserDao实现类,可配合@Qualifier使用// @Autowired// @Qualifier("userDaoImpl")// private UserDao userDao;@OverridepublicvoidfindUserById(){userDao.findUserById();System.out.println("UserService!!!!");}}

六、快速记忆口诀

IOC四兄弟:Controller、Service、Repository、Component
Scope控单例:singleton默认,prototype多例
DI四剑客:Value基本型,Autowired类型,Resource名字,Qualifier配合
XML扫注解:component-scan包路径
修改BeanID:@Component(“自定义名称”)


七、原理补充(理解性记忆)

所有注解生效的前提是Spring容器启动时通过<context:component-scan>扫描包路径,将带有注解的类注册为BeanDefinition,再由BeanFactory实例化并管理其生命周期

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/2 1:56:24

什么是个人知识库?从零开始构建你的专属智慧宝库!

简介 个人知识库是"大脑的外挂硬盘"&#xff0c;帮助整理零散知识碎片&#xff0c;构建成可随时搜索的"数字图书馆"。它能提升学习工作效率&#xff0c;避免遗忘知识、串联零散信息、提高认知效率、打造个人IP。小白可以从笔记软件如印象笔记、Notion开始…

作者头像 李华
网站建设 2026/8/1 10:44:58

41、数据验证与错误处理全解析

数据验证与错误处理全解析 1. DataGridView 错误显示 由于 DataGridView 能够显示复杂的数据,在显示错误信息时需要特殊处理。该控件内置了行和单元格级别的错误信息显示支持,其工作原理很简单:如同在表单级别使用错误提供程序一样,你可以为行或单元格设置 ErrorText 属…

作者头像 李华
网站建设 2026/8/1 5:15:50

49、Windows Forms 架构与编程基础全解析

Windows Forms 架构与编程基础全解析 1. Windows Forms 架构概述 在 Windows Forms 编程中,表单(form)本质上是一种 .NET 类型。具体而言,表单是从 System.Windows.Forms.Form 基类派生而来的自定义类。在派生类中,你可以像其他 .NET 类一样包含成员变量、属性、方法和…

作者头像 李华
网站建设 2026/8/1 4:35:11

52、Windows Forms开发:控件布局、数据访问与相关技巧

Windows Forms开发:控件布局、数据访问与相关技巧 1. 设置表单控件的Tab顺序 在设计表单时,正确设置控件的Tab顺序至关重要。Windows Forms控件遵循标准的Windows约定,允许用户使用Tab键将输入焦点从一个控件移动到另一个控件。焦点在控件之间的切换顺序由Tab顺序决定,而…

作者头像 李华
网站建设 2026/7/31 19:27:44

59、数据访问与绑定技术全面解析

数据访问与绑定技术全面解析 1. 数据访问基础 数据访问是软件开发中至关重要的一部分,尤其是在处理关系型数据和 XML 数据时。ADO.NET 为我们提供了强大的工具来实现这一目标。 1.1 ADO.NET 中的 DataSet 类 DataSet 类是客户端用于存储和操作关系型数据的强大对象。它具有…

作者头像 李华
网站建设 2026/7/30 9:02:19

Kotaemon文档全面升级:新手也能快速上手

Kotaemon文档全面升级&#xff1a;新手也能快速上手 在企业纷纷拥抱大模型的今天&#xff0c;一个现实问题摆在开发者面前&#xff1a;如何让LLM不只是“聊天有趣”&#xff0c;而是真正“干活靠谱”&#xff1f;尤其是在金融、医疗、客服这类对准确性要求极高的场景中&#xf…

作者头像 李华