Ioc个人理解

简介: IOC根据官方给的意思是依赖注入,说白了,调用类的方面不用"new 类名",而是在配置文件中配置后,然后新建一个工厂类,这样在工厂类中就可以直接调用了。下面是实现IOC的过程。


image.png

一.IOC原理

IOC根据官方给的意思是依赖注入,说白了,调用类的方面不用"new 类名",而是在配置文件中配置后,然后新建一个工厂类,这样在工厂类中就可以直接调用了。下面是实现IOC的过程。

1.配置spring.xml

现在都用注解了,但是内部实现方式应该是相同的

<bean id="user" class="cn.cbb.ioc.User"></bean>

2.新建main方式直接调用。

ApplicationContext cta = new ClassPathXmlApplicationContext("spring.xml");
City city = (City)cta.getBeanFactory().getBean("City");

3.原理

1.新建一个factory工厂类。

2.从spring.xml中取出配置,获取标签,通过控制反转得到类的Class。

3.将得到的Class对象注入到factory工厂类中。

4.从工厂类中通过类.方法就可以调用。

二.ApplicationContext 和FactoryBean

FactoryBean:是工厂类的接口,只有在调用时才被载入。

ApplicationContext :实现了FactoryBean接口,在项目初始化时就被载入。同时又传递上下文和资源访问的能力。

以下是FactoryBean的类图。他们完成的功能基本相同,只不过他们的侧重点不同,具体的侧重点大家可以去这位老哥这去研究研究 https://blog.csdn.net/qq_34090008/article/details/78772189

image.png

三.BeanFactory和FactoryBean的区别

BeanFactory:是Ioc最基本的接口,用于新建一个工厂类管理spring下的组件。

 FactoryBean:是一个bean,是BeanFactory的组件,只不过比较特殊,是一个工厂Bean。同时从spring  的ApplicationContext中取出的是FactoryBean的工厂类,而不是FactoryBean本身。如果需要获得本身则加入。


相关文章
|
3月前
|
设计模式 Java 容器
控制反转 (IoC)
【8月更文挑战第24天】
39 0
|
Java Maven
SpringFrame-ioc 依赖注入
SpringFrame-ioc 依赖注入
|
JavaScript uml 容器
Ioc——控制反转
Ioc——控制反转
206 0
Ioc——控制反转
|
Java API C++
IOC理解
成功就是简单道理的深刻理解与灵活运用 前不久,阿里大牛虾总在群里抛出一个问题:“从深层次讲解一下如何理解IOC,IOC和DI是一回事吗?” 这个问题真是让人平静而又不平静 平静源于此问题就像问中国人怎么使用筷子,天天使用筷子,难道还不会使用筷子? 但又不平静,你能写出一份详细的说明书,让一个不会使用筷子的人按此说明成功地使用上筷子吗?
351 0
IOC理解
|
Oracle 架构师 Java
什么是IOC
什么是IOC
260 0
什么是IOC
|
自动驾驶 小程序 Java
什么是控制反转(IOC)?什么是依赖注入?
什么是控制反转(IOC)?什么是依赖注入?
什么是控制反转(IOC)?什么是依赖注入?
|
XML 存储 Java
|
Java 程序员 数据库
依赖注入IOC
依赖注入IOC
|
Java 编译器 容器
IoC与AOP的那点事儿
IoC与AOP的那点事儿
106 0