news 2025/12/27 6:35:42

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 0:51:44

Spring IOC/DI 核心知识

一、核心容器架构 1. 容器层级关系 BeanFactory&#xff1a;根容器&#xff0c;提供基础的IoC功能&#xff0c;采用延迟加载策略ApplicationContext&#xff1a;子容器&#xff0c;继承BeanFactory&#xff0c;增加AOP、消息源、事件发布等企业级功能WebApplicationContext&…

作者头像 李华
网站建设 2025/12/26 20:24:15

20年IT老兵亲授:Claudecode AI编程工具从安装到实战!

简介 本文是一位近20年IT经验的老IT人分享的AI辅助编程工具Claudecode使用教程。文章详细介绍了Claudecode的安装、配置方法&#xff0c;并通过开发一个H5五子棋小游戏展示了其实际应用。Claudecode能够根据自然语言描述自动生成高质量代码&#xff0c;非常适合编程能力较弱但有…

作者头像 李华
网站建设 2025/12/22 18:43:11

48、使用 Visual Studio 创建 Windows 窗体应用程序

使用 Visual Studio 创建 Windows 窗体应用程序 在 Windows 窗体应用程序开发中,虽然手动编写代码有助于理解模型的简单性,但通常我们会使用 Visual Studio IDE 以快速应用程序开发(RAD)的方式来设计窗体。下面我们通过一个示例来详细了解这个过程。 创建空的 Windows 窗…

作者头像 李华
网站建设 2025/12/22 11:55:31

51、Windows Forms 自定义用户控件与布局技巧

Windows Forms 自定义用户控件与布局技巧 1. 自定义用户控件 在设计应用程序时,有时表单会变得复杂,包含大量控件。一般应避免这种情况,因为单个表单上控件过多意味着需要有经验丰富的用户。不过,表单上常存在功能相关的控件组,支持它们的代码大多可与表单上其他控件的代…

作者头像 李华
网站建设 2025/12/24 3:28:55

56、数据集合操作与事务处理全解析

数据集合操作与事务处理全解析 在数据处理过程中,我们常常需要对数据集合进行搜索、合并等操作,同时也会涉及到事务处理以保证数据的一致性和完整性。下面将详细介绍这些操作的方法和技巧。 1. 搜索数据集合 当数据被加载到数据集合(DataSet)后,我们可能需要从中搜索和…

作者头像 李华
网站建设 2025/12/23 19:56:35

2、深入解析Flex与Bison:从原理到应用

深入解析Flex与Bison:从原理到应用 1. Flex与Bison的起源 Flex和Bison是在编程领域广泛应用的工具,它们的起源可以追溯到上世纪。Bison源自yacc,yacc是由贝尔实验室的Stephen C. Johnson在1975 - 1978年间编写的解析器生成器。它结合了D. E. Knuth解析工作的坚实理论基础和…

作者头像 李华