Spring基础

1、Ioc容器是什么?
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期)。
2、DI(Dependency Injection依赖注入)介绍
网页:https://www.jianshu.com/p/c0bbf59671b7
被注入对象依赖IoC容器配置依赖对象
(1)对象依赖
在A里用到B类的实例化构造,就可以说A依赖于B
(2)接口依赖
早期实现类B的时候就定义了一个接口叫IWriter,B和C都会实现这个接口里的方法
(3)依赖注入(DI)
注入的意思就是在运行时动态实例化一个对象,就像打针一样注入到这个对象的使用者A,对于A来说并不需要知道是B还是C还是D被注入。
DI的基本概念是容器,这个容器用于注册接口和对应的实现,A从容器中根据接口来获取实现,具体的实现是那个类不需要了解,用完怎么释放也不需要管。
Spring基础
3、Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
(1)谁控制谁,控制什么:谁控制谁?当然是IoC容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。
(2)为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。
  ●谁依赖于谁:当然是应用程序依赖于IoC容器;
  ●为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源;
  ●谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象;
  ●注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。
Spring基础
Spring基础
4、IoC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。
5、对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。
6、所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
7、IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
8、AOP(Aspect Oriented Programming)(面向切面编程)
编程中,对象与对象之间,方法与方法之间,模块与模块之间都是一个个切面