如何理解Spring的控制反转IOC和依赖注入DI思想

       首先我们要知道Java应用程序的每个逻辑业务的完成需要多个类的相互合作。例如有一个Student对象需要使用Course对象,通常需要在Student对象中new一个Course对象,然后再调用Course对象的相关属性或者方法,但是也可以看出对象之间的耦合度高了。Spring的IOC的想法就是由Spring容器来控制以来对象的创建和销毁,例如当Student对象需要使用Cousrse时候,Student类中声明Course类型的对象引用(前面加上注解@Autowired),程序运行时候由Spring容器创建一个Course对象,并将该对象传给Student。也就是说由Spring容器控制对象的生命周期和对象之间的关系。

      IOC——Inverse of Control 控制反转的意思就是说,当一个对象需要使用它的依赖对象时候,不再自己负责依赖对象的创建和销毁,而是由Spring容器来控制,所以称之为控制反转。

      IOC说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际上就是你在XML文件中控制,侧重于原理。

     DI——Dependency Injection以来注入,其实表达的思想和IOC是一样的。只不过所站的角度不同。Martin Fowler提出一个问题:控制的什么被反转了?就是获得依赖对象的方式被反转了。这就是依赖注入,即依赖对象的获取需要Spring容器注入。

        DI说的是创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现。

      好处:

      1.通过IOC/DI,我们可以看到对象之间的耦合度降低了。

      2..通过Spring容器实现了资源的可配置和易管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值