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本身。如果需要获得本身则加入。


相关文章
|
4月前
|
设计模式 Java 容器
控制反转 (IoC)
【8月更文挑战第24天】
42 0
|
XML 开发框架 Java
Spring框架IoC控制反转
Spring是与2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。Spring是可以在Java SE/EE中使用的轻量级开源框架。 Spring的主要作用就是为代码"解耦",降低代码间的耦合度。就是让对象和对象(模板和模板)之间关系不是使用代码关联,而是通过配置来说明。即在Spring中说明对象(模块)的关系。 Spring根据代码的功能特点,使用IOC降低业务对象之间耦合度。IOC使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了,而是由Spring容器统一
84 2
|
Java Maven
SpringFrame-ioc 依赖注入
SpringFrame-ioc 依赖注入
|
JavaScript uml 容器
Ioc——控制反转
Ioc——控制反转
212 0
Ioc——控制反转
|
Java API C++
IOC理解
成功就是简单道理的深刻理解与灵活运用 前不久,阿里大牛虾总在群里抛出一个问题:“从深层次讲解一下如何理解IOC,IOC和DI是一回事吗?” 这个问题真是让人平静而又不平静 平静源于此问题就像问中国人怎么使用筷子,天天使用筷子,难道还不会使用筷子? 但又不平静,你能写出一份详细的说明书,让一个不会使用筷子的人按此说明成功地使用上筷子吗?
356 0
IOC理解
|
Oracle 架构师 Java
什么是IOC
什么是IOC
267 0
什么是IOC
|
自动驾驶 小程序 Java
什么是控制反转(IOC)?什么是依赖注入?
什么是控制反转(IOC)?什么是依赖注入?
什么是控制反转(IOC)?什么是依赖注入?
|
XML 存储 Java
|
Java 程序员 数据库
依赖注入IOC
依赖注入IOC
|
NoSQL PHP Redis
控制反转( IoC)和依赖注入(DI)
控制反转( IoC)和依赖注入(DI) tags: 容器 依赖注入 IOC DI 控制反转 引言:如果你看过一些框架的源码或者手册,像是laravel或者tp5之类的,应该会提到容器,依赖注入,控制反转等词汇。
1300 0