IOC容器

本文详细介绍了Spring框架中的IoC(控制反转)概念,如何通过XML解析、工厂模式和反射实现,并着重讨论了BeanFactory与ApplicationContext的区别,以及如何通过配置文件和注解进行Bean管理,包括字面量注入、依赖注入和级联赋值实例。

IOC(概念和原理)
1、什么是IOC:
(1)控制反转,反转控制:把对象创建和对象之间的调用过程,交给Spring来管理
(2)IOC使用目的:为了耦合度降低
(3)前面的入门案例就是IOC的是实现
2、IOC底层原理
(1)XML解析、工厂模式、反射
3、画图讲解IOC底层原理
在这里插入图片描述
这种古老的方式有一种致命的问题:耦合度太高

工厂模式:

在这里插入图片描述
我们最终的目的是让耦合度降低到最低限度。
在这里插入图片描述
进一步降低耦合度。
IOC(接口)
1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。
2.Spring提供IOC容器实现的两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现方式,一般开发中不经常使用,是Spring里面内部使用的接口,不提供给开发人员进行使用
(*加载配置文件的时候不会创建对象,在获取/使用的时候才会创建对象)
(2) ApplicationContext:BeanFactory的子接口,提供了更多更强大的功能,一般是面向开发人员使用的。
(*加载配置文件的时候就会把在配置文件对象进行创建)
3.ApplicationContext实现类
在这里插入图片描述
FileSystemXmlApplicationContext:对应的是盘路径
ClassPathSystemXmlApplicationContext:对应的是类路径

IOC操作Bean管理

1、什么是Bean管理
(0)Bean管理指的是两个操作:
(1)Spring创建对象
(2)Spring注入属性
2、Bean管理操作有两种方式
1、基于xml配置文件方式
在这里插入图片描述(1)在spring配置文件名中,添加bean标签,在标签中添加对应属性,就可以实现对象创建。
(2)在bean标签中有很多属性:

  • id属性:唯一表示
  • class属性:类全路径(包类属性)
  • name属性:和id的作用差不多,区别在于可以添加特殊符号
    (3)创建对象的时候,默认也是执行无参数的构造方法

2、基于注解方式实现
(1)DI:依赖注入,就是注入属性

3、第一种注入方式:使用set方法注入:
(1)
在这里插入图片描述在这里插入图片描述(2)在spring配置文件配置对象创建,配置属性注入
在这里插入图片描述

4、第二种注入方式:使用有参数的构造进行注入:
(1)创建类,定义属性,创建属性对应有参构造方法:
在这里插入图片描述
(2)在配置文件下进行配置
在这里插入图片描述
5、p名称空间注入
(1)使用p名称空间注入,可以简化基于xml配置方式
第一步:添加p名称空间在配置文件中
在这里插入图片描述
第二步 进行属性输入:在bean标签里面进行操作

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

1、字面量
(1)null值
在这里插入图片描述

(2)属性值包含特殊符号
在这里插入图片描述
2、注入属性-外部bean
(1)创建两个类:service类和dao类
(2)在service类调用dao里面的方法
(3)在spring配置文件中配置
在这里插入图片描述

上图是测试过程
3、注入属性-内部bean和级联赋值
(1)一对多关系:部门和员工
一个部门有多个员工 一个员工属于一个部门
部门是一 员工是多
在这里插入图片描述

(2)在实体类之间表示一对多的关系,员工表示所属部门,使用对象类型属性进行表示
在这里插入图片描述

(3)在spring配置文件中进行配置
在这里插入图片描述
测试:在这里插入图片描述
4、注入属性-级联赋值
(1)第一种写法在这里插入图片描述
(2)第二种写法在这里插入图片描述
要记得去生成get

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SCU Polars

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值