美文网首页
浅谈spring boot控制反转的相关问题

浅谈spring boot控制反转的相关问题

作者: 值得一看的喵 | 来源:发表于2017-12-04 11:30 被阅读0次

控制反转,和依赖注入是同一个意思,我觉得应该重点去了解什么是依赖,而后控制反转、依赖注入就有体会了;关于依赖,可以查看UML相关的书籍,重点去看java对象之间的关系是怎样的,而所谓的依赖就是对象之间的一种关系,比如a对象依赖于b对象,那么a类中就会有b类的引用(简单理解就是拥有b类的这么一个属性),也就是说a对象要想执行一个完整的功能,必须建立一个前提——a对象中的b类属性已经实例话,并且拥有b类的一切功能;现在可以去了解什么是依赖注入了,就像前面说过的,a对象想完成一个完整的功能,要先为自己的b类属性实例化。

而在MVC模式中,这种现象很常见,为了简化这种实例化的工作,spring容器就产生了,它可以统一管理这种实例化频繁的操作,就是说这种本来应由自己实例化的工作交给Spring容器去控制了,也就是说控制反转了,实现的方案之一是在上述a类中提供一个关于b类的setter方法,这个方法会被Spring容器控制。

我们要知道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容器实现了资源的可配置和易管理。

相关文章

  • 浅谈spring boot控制反转的相关问题

    控制反转,和依赖注入是同一个意思,我觉得应该重点去了解什么是依赖,而后控制反转、依赖注入就有体会了;关于依赖,可以...

  • Spring

    Spring&Spring Boot Spring 自带 IOC(Inverse of Control:控制反转)...

  • Spring之IOC

    浅谈IOC IOC(Inversion of Control,控制反转)是Spring 的核心,贯穿始终。所谓IO...

  • Spring控制反转(IOC)

    简书日更 第2篇: 重新学习Spring控制反转(IOC)相关知识 什么是Spring IOC 容器? 控制反转(...

  • 大厂面试系列(四):Spring相关

    Spring相关 spring工作原理简单介绍 循环依赖问题 spring/spring boot启动加载过程 ?...

  • 一文带你搞懂Spring核心

    一.什么是控制反转 二.使用Spring IoC的步骤: 1、到入Spring 相关的Jar包(spring-ex...

  • Java面试——Spring 相关

    Java面试——Spring 相关 1,Spring的介绍: IOC和AOP:IOC:控制反转,把创建对象的权力交...

  • 019-Spring Aop

    spring最核心的两个功能是aop和ioc,即面向切面,控制反转。这里我们探讨一下如何在spring boot中...

  • JAVA之Spring Bean

    1、Spring Ioc 控制反转【大工厂】 IoC 控制反转Spring IoC:Inversion of Co...

  • Spring Boot浅谈(是什么/能干什么/优点和不足)

    1. Spring Boot是什么,解决哪些问题 2. Spring Boot在平台中的定位,相关技术如何融合 3...

网友评论

      本文标题:浅谈spring boot控制反转的相关问题

      本文链接:https://www.haomeiwen.com/subject/mpgtixtx.html