Spring - IoC

目录

1、概念

2、为什么要通过配置来做对象的建立及其依赖关系呢?

3、怎么实现对象及其依赖关系的创建呢?

4、控制反转IoC有啥好处?

5、具体实现


从今天开始,阅读资料,整理Spring框架的知识。

Spring框架:截止目前Java最流行的框架,最主要的思想是控制反转(IoC, inversion of Control)面向切面(AOP, Aspesct Oriented Programming).

这一篇主要了解控制反转IoC。


1、概念

IoC本质是一个容器。Spring通过IoC这个容器,依靠描述(配置文件)来实现对象的创建及其依赖关系。

 


2、为什么要通过配置来做对象的建立及其依赖关系呢?

来想象一下,对于某一类的事物,可以定义一个接口,这类事物有一些子类,可以定义相应的子类。比如糖,有冬瓜糖、西瓜糖、南瓜糖等等。假设我想吃的是冬瓜糖,通过程序的方式,一般是如下这样使用的:首先定义接口下的某一类的具体对象,然后去使用这个具体对象。

// 吃糖,吃冬瓜糖,代码逻辑

Candy candy = new CandyWintermelon();
user.setCandy(candy);
user.useCandy();

但是这样就有一个问题,如果我又想吃南瓜糖了怎么办?是不是需要又需要再去申明一个南瓜糖的对象呢?答案是肯定的,必须再次申明一个南瓜糖的对象,才能实现我又想吃南瓜糖的逻辑。其实这看起来也还好,因为也就才多生成一个对象而已,感觉也不费事。不过想象一下:一个大型互联网的对象是成千上万的,如果需要不断创建、修改新的对象,那么将会出现很大的问题

因此,Spring提出了使用IoC来实现对象及其依赖关系的创建,其目的就是为了实现对象及其依赖关系创建的快捷和方便。

 


3、怎么实现对象及其依赖关系的创建呢?

方式:用户编写配置文件(一般是XML形式),IoC容器通过这个配置文件去找到相应的对象和依赖关系,然后向用户注入找到的内容。

简单理解:这就是用户提供一个买货清单,然后IoC通过这个清单找货、卖货、送货的过程。其实挺简单的。控制反转的含义就是用户只需要提供用户的需求描述信息,而需求的资源是可以通过需求描述信息在IoC容器中找到的,负责寻找的是IoC容器(拥有控制权的是IoC容器),而不再是用户了,所以叫做控制反转。

 

示例:

使用Spring IoC注入南瓜糖给用户,XML配置文件。

// IoC配置文件

<bean id = "candy" class ="CandyWintermelon" / >
<bean id = "user" class ="xxx.user"  >
        <property name = "candy" ref = "candy"/>
</bean>

4、控制反转IoC有啥好处?

1、想要增加、修改资源不需要再去new对象,想要修改依赖关系也可以通过配置完成,可以即插即拔的管理对象及其关系;

2、把Bean之间的关系解耦了,更容易写出逻辑清晰的代码;

3、提供对Java Bean生命周期的管理,可以延迟加载,在生命周期内定义行为等。能够方便地使用、管理Java资源。

 


5、具体实现

参考:https://blog.youkuaiyun.com/weixin_44823472/article/details/97787171?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.compare

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值