上篇文章我们看过了Spring解析、注册的对象的过程和源码,相信大家和我一样肯定有很多打问号的地方。下面针对我自己疑问的点作出的整理,看源码的时候不仅仅要知道是什么,也要知道问什么这样做,我们能学到什么。看源码和理解作者的思想是输入,自己学到总结出来的是输出。
1、什么是Spring IOC容器 2、什么是依赖注入 3、如何给Spring容器提供元数据 4、Spring bean的生命周期 5、Spring bean的作用域 6、Spring 单例bean线程是否安全 这是大多面试中最常见的问题,但是弄懂这些问题,仅仅是掌握了Spring怎么用。结合源码来看一下这些问题。
1、IOC:Inversion of Control控制反转,控制——对象的控制权,没有Spring我们需要一个对象就在new Object(),这种是由我们控制,有了Spring对象是由Spring控制;反转——控制权的从我们转换到Spring的过程。IOC只是一种思想,体现在整个Core模块中。 Inversion of Control Containers and the Dependency Injection pattern
2、DI:Dependency Injection依赖注入。对象的控制权交由Spring,所以程序依赖IOC容器,IOC容器注入程序所需要的资源、对象。
3、Spring提供了三种配置元数据的方式:java配置、xml文件、注解。
4、实例化 -> 属性赋值 -> 初始化 -> 使用 ->销毁
5、singleton、request、session、prototype、globalSeesion
6、Spring利用ThreadLocal来保证线程安全