【Spring】IOC底层原理
1.什么是IOC
(1)也叫控制反转:把对象创建和对象之间的调用过程,交给Spring进行管理
(2)使用IOC目的:为了降低耦合度(比如User类中需要调用Person类的方法,那么就需要创建Person类的对象,交给Spring管理)
(3)入门案例就是IOC的实现
2.IOC底层原理
调用另一个类中的方法
(1)原始方式
耦合度太高,当UserDao类的位置或其他改变时,UserService类也需要改变。
(2)使用工厂模式
把创建对象的事交给工厂,但是这样UserFactory和UserDao之间还有耦合度,耦合度还没有降到最低。
(3)IOC过程
xml解析、工厂模式、反射。
当UserDao类位置改变时,只需要修改bean.xml配置文件即可,进一步降低耦合度。
3.IOC接口
IOC思想:IOC就是一个容器,底层就是对象工厂
(1)IOC容器实现的方式,两个接口都能通过加载配置文件,通过工厂创建对象
-
BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用
- 加载配置文件时不会创建对象,在获取(使用)时才去创建对象。
- 加载配置文件时不会创建对象,在获取(使用)时才去创建对象。
-
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。
- 加载配置文件时就会把在配置文件中的对象创建。
- 加载配置文件时就会把在配置文件中的对象创建。
按理说第一种方式好,但是我们一般把这种耗时的操作放在服务器启动时就做,而不是使用时才去创建。
4.Application接口实现类
Ctrl+h 查看
第一个表示配置文件路径要写带盘符的,如 D://bean.xml
第二个表示配置文件路径写工程路径src下的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本