二、IOC容器

文章目录

  • 1. IOC的底层原理
    • 1.1 什么是IOC
    • 1.2 IOC 底层原理
    • 1.3 画图讲解 IOC 底层原理
  • 2. IOC接口(BeanFactory)
  • 3. IOC 操作 Bean 管理(概念)
    • 3.1 什么是Bean管理
    • 3.2 Bean管理操作的两种方式
  • 4. IOC操作 Bean 管理(基于 xml)
    • 4.1 基于XML方式创建对象
    • 4.2 基于 xml 方式注入属性
      • 4.2.1 第一种注入方式:使用 set 方法进行注入
      • 4.2.2 第二种注入方式:使用有参数构造进行注入
    • 4.3 p 名称空间注入(了解)
  • 5. IOC 操作 Bean 管理(xml 注入其他类型属性)
    • 5.1 字面量
    • 5.2 注入属性-外部 bean
    • 5.3 注入属性-内部 bean
    • 5.4 注入属性-级联赋值
  • 6. IOC 操作 Bean 管理(xml 注入集合属性)
    • 6.1 注入属性 --- 数组、list与Map集合
    • 6.2 在集合里面设置对象类型值
    • 6.3 把集合注入部分提取出来
  • 7. IOC 操作 Bean 管理(FactoryBean)
  • 8. IOC 操作 Bean 管理(bean 作用域 --- 表示设置单实例还是多实例)
  • 9. IOC 操作 Bean 管理(bean 生命周期)
    • 9.1 生命周期
    • 9.2 bean 生命周期
    • 9.3 演示 bean 生命周期
    • 9.4 bean 的后置处理器,bean 生命周期有7步
    • 9.5 演示添加后置处理器(BeanPostProcessor)效果
  • 10. IOC 操作 Bean 管理(xml 自动装配)
    • 10.1 什么是自动装配
    • 10.2 演示自动装配过程
  • 11. IOC 操作 Bean 管理(外部属性文件)
    • 11.1 直接配置数据库信息
    • 11.2 引入外部属性文件配置数据库连接池
  • 12. IOC 操作 Bean 管理(基于注解方式)
    • 12.1 什么是注解
    • 12.2 Spring 针对 Bean 管理中创建对象提供注解
    • 12.3 基于注解方式实现对象创建
    • 12.4 开启组件扫描细节配置
    • 12.5 基于注解方式实现属性注入
      • 12.5.1 @Autowired:根据属性类型进行自动装配
      • 12.5.2 @Qualifier:根据名称进行注入
      • 12.5.3 @Resource:可以根据类型注入,可以根据名称注入
      • 12.5.4 @Value:注入普通类型属性
    • 12.6 完全注解开发

1. IOC的底层原理

1.1 什么是IOC

(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
(2)使用 IOC 目的:为了耦合度降低
(3)做入门案例就是 IOC 实现

1.2 IOC 底层原理

(1)xml 解析、工厂模式、反射

1.3 画图讲解 IOC 底层原理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. IOC接口(BeanFactory)

在这里插入图片描述

3. IOC 操作 Bean 管理(概念)

3.1 什么是Bean管理

在这里插入图片描述

3.2 Bean管理操作的两种方式

在这里插入图片描述

4. IOC操作 Bean 管理(基于 xml)

4.1 基于XML方式创建对象

在这里插入图片描述

4.2 基于 xml 方式注入属性

  • DI:依赖注入,就是注入属性

4.2.1 第一种注入方式:使用 set 方法进行注入

在这里插入图片描述

在这里插入图片描述

4.2.2 第二种注入方式:使用有参数构造进行注入

在这里插入图片描述

在这里插入图片描述

4.3 p 名称空间注入(了解)

在这里插入图片描述

5. IOC 操作 Bean 管理(xml 注入其他类型属性)

5.1 字面量

在这里插入图片描述

5.2 注入属性-外部 bean

在这里插入图片描述

5.3 注入属性-内部 bean

在这里插入图片描述

在这里插入图片描述

5.4 注入属性-级联赋值

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. IOC 操作 Bean 管理(xml 注入集合属性)

6.1 注入属性 — 数组、list与Map集合

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2 在集合里面设置对象类型值

在这里插入图片描述

6.3 把集合注入部分提取出来

在这里插入图片描述

在这里插入图片描述

7. IOC 操作 Bean 管理(FactoryBean)

在这里插入图片描述

在这里插入图片描述

8. IOC 操作 Bean 管理(bean 作用域 — 表示设置单实例还是多实例)

1、在 Spring 里面,设置创建 bean 实例是单实例还是多实例
在这里插入图片描述

在这里插入图片描述

9. IOC 操作 Bean 管理(bean 生命周期)

  • 注意:需要配置 初始化的方法销毁的方法

9.1 生命周期

在这里插入图片描述

9.2 bean 生命周期

在这里插入图片描述

9.3 演示 bean 生命周期

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9.4 bean 的后置处理器,bean 生命周期有7步

在这里插入图片描述

在这里插入图片描述

9.5 演示添加后置处理器(BeanPostProcessor)效果

  • 注意:BeanPostProcessor实现的方法会作用于所有的bean的生命周期中
    在这里插入图片描述

在这里插入图片描述

10. IOC 操作 Bean 管理(xml 自动装配)

10.1 什么是自动装配

(1)根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入

10.2 演示自动装配过程

在这里插入图片描述

在这里插入图片描述

11. IOC 操作 Bean 管理(外部属性文件)

11.1 直接配置数据库信息

在这里插入图片描述

11.2 引入外部属性文件配置数据库连接池

在这里插入图片描述

在这里插入图片描述

  • 注:名称空间用以区分重名的标签。在 xml 中 ${} 是引用表达式

12. IOC 操作 Bean 管理(基于注解方式)

12.1 什么是注解

(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…)
(2)使用注解,注解作用在类上面,方法上面,属性上面
(3)使用注解目的:简化 xml 配置

12.2 Spring 针对 Bean 管理中创建对象提供注解

在这里插入图片描述

12.3 基于注解方式实现对象创建

在这里插入图片描述

在这里插入图片描述

12.4 开启组件扫描细节配置

在这里插入图片描述

12.5 基于注解方式实现属性注入

12.5.1 @Autowired:根据属性类型进行自动装配

在这里插入图片描述

12.5.2 @Qualifier:根据名称进行注入

在这里插入图片描述

在这里插入图片描述

12.5.3 @Resource:可以根据类型注入,可以根据名称注入

在这里插入图片描述

12.5.4 @Value:注入普通类型属性

在这里插入图片描述

12.6 完全注解开发

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559946.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】Set类型常用命令

目录 一. Set集合类型简介.二. 增加元素相关命令2.1 向集合中添加元素(sadd)2.2 从集合中移动元素( smove ) 三. 查询元素相关操作.3.1 查询集合中存在的所有元素.( smembers )3.2 查询集合中是否存在member( sismember ) 四. 随机获取集合中的元素4.1 随机获取集合中的n个元素…

基于单片机的穿戴式泳池遇险紧急呼救系统的设计

本计基于单片机的穿戴式泳池遇险紧急呼救系统装置。该装置采用STC12C5A60S2单片机与心率检测模块MAX30102的一体化脉冲血氧分析仪和心率监测器,对人体的心跳进行了实时检测。该装置由发送端和接收端两部分组成,中间由LORA无线通信模块进行数据传输&#…

C语言刷题 LeetCode 30天挑战 (十)Stack 栈 (MinStack)

这个题目要求你设计一个特殊的栈(MinStack),不仅要具备普通栈的基本功能(push、pop 和 top),还要能够在常数时间内(O(1) 时间复杂度)获取栈中的最小元素(getMin&#xff…

curl执行报【先没有那个文件或目录】解决办法

开发微信发过了curl命令后,执行报错 是空格导致的,解决办法是打开下面网址重新输入空格即可 在线curl命令转代码 删除这个空格 重新输入空格

『网络游戏』服务器向客户端分发消息【20】

对服务器添加System引用 修改脚本:LoginSys.cs 修改脚本:NetSvc.cs 修改脚本:ServerSession.cs 修改脚本:GameMsg.cs 修改脚本:MsgPack.cs 修改脚本:LoginSys.cs 修改脚本:ServerRoot.cs 修改脚…

java随机生成数学算式

生成随机数学算式可谓是计算机领域的一个经典的问题, 本文使用JFrame,JButton,JTextField等java图形化工具,生成一个可以随机切换题目,可以实现计时功能的一个图形化界面 源代码展示 randomMath类 package login;import javax.swing.*; import java.awt.*; import java.awt.e…

运筹说 第126期 | 存储论经典例题讲解——随机存储模型

通过上一期,我们已经学习了确定型存储论模型在经济管理中的应用,但其忽略了现实中的随机性和不确定性因素,本期小编选择了一些考虑不确定因素的随机存储模型的典型例题,进行详细讲解。 单周期的随机型存储模型 单周期的随机型存储…

基于STM32的“Flash闪存”基础 及 “SD NAND Flash”测试例程

文章目录 一、“FLASH闪存”是什么? 简介 分类 特点 虚拟化 二、SD NAND Flash 概述 引脚分配 数据传输模式 SD NAND寄存器 通电图 参考设计 三、STM32测试例程 本篇除了对flash闪存进行简单介绍外,另给读者推荐一种我本人也在用的小容量闪…

STM32 USB CUBEMX

开发背景 使用的平台:STM32H750 注意事项 时钟必须是48MHZ,其它都不行 2. 将默认任务的堆栈设大一点 如果使用操作系统,USB任务跑在默认任务里,因此需要设置默认任务的堆栈缓存是直接定义的全局变量,需要设置编译器…

【windows Server 2012】把我的电脑放在桌面

WinR 打开命令输入框 输入 rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

Vue+Vant实现7天日历展示,并在切换日期时实时变换

效果图&#xff1a; 主要使用 moment.js 插件完成 HTML部分 <div class"day-content"><div class"day-content-t"><div>{{ monthVal }}</div><div click"onCalendar()">更多>></div></div><…

月入8.3K,电子厂普工转行网优,每个人都可以是潜力股!

今天主人公只有22岁&#xff0c;大专学历&#xff0c;毕业之后一直在芯片厂从事流水线工作&#xff0c;枯燥烦闷的生活让他下定决心转行&#xff0c;目前收到一份薪资8300元的offer&#xff0c;让我们一起来看看他的故事~ 1 为什么选择网优行业&#xff1f; 大学我学的软件技术…

DAY6 面向对象

概念 对象是一种特殊的数据结构&#xff0c;可以用来记住一个事物的数据&#xff0c;从而代表该事物&#xff0c;可以理解为一个模板表&#xff0c;总而言之万物皆对象&#xff0c;比如一个人、一个物体等。 怎么创建对象 先设计对象的模板&#xff0c;也就是对象的设计图&a…

影视飓风全平台下架引思:录屏分辨率与码率科普及实用软件推荐

在影视飓风10月8日发布视频《清晰度不如4年前!视频变糊是你的错觉吗》后&#xff0c;引发了很多关于视频清晰度的讨论。 有知乎用户总结提出现在在线视频被降画质的几个点&#xff1a;一是原始视频上传到服务器就被压缩&#xff0c;虽分辨率看似不变&#xff0c;但如 H.265 等高…

【SQL】收入更高的员工

目录 语法 需求 示例 分析 代码 语法 FROM Employee a, Employee b 两个表之间笛卡尔积&#xff08;Cartesian product&#xff09;的形式&#xff0c;用了逗号分隔的连接&#xff08;comma-separated join&#xff09;&#xff0c;这是早期SQL语法中用于连接表的一种方式…

TikTok 伪装度分析:揭开社交媒体的真实面纱

在现代社交媒体中&#xff0c;TikTok凭借其短视频的形式和算法推荐的机制&#xff0c;迅速吸引了大量用户。然而&#xff0c;随着用户基数的扩大&#xff0c;平台上的内容呈现出多样化的趋势&#xff0c;而“伪装度”这一概念也逐渐成为我们分析TikTok内容质量和用户行为的重要…

SpringBoot使用esayExcel根据模板导出excel

1、依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.3</version></dependency> 2、模板 3、实体类 package com.skybird.iot.addons.productionManagement.qualityTesting…

泰始明昌文旅:如何打造真正的文旅爆品体系

泰始明昌文旅&#xff1a;如何打造真正的文旅爆品体系 泰始明昌文旅&#xff1a;如何打造真正的爆品体系 关键词&#xff1a;泰始明昌文旅,文旅爆品,核心卖点,用户痛点,项目特点,对手弱点,爆品体系,爆品品类,结构化,品质,价值链接,生态体系,营销推广,持续创新 摘要&#xff…

接口和多态

接口 概念 接口是功能的集合&#xff0c;它同样是一种引用数据类型&#xff0c;可以把接口看作抽象类更为抽象的 "类"。 接口只描述所应该具备的功能方法&#xff0c;但是没有具体的方法实现&#xff0c;即接口中具有的都是抽象方法&#xff0c;这些抽象方法的实现是…

美发店业务流程优化:SpringBoot管理系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…