Spring概述
1.什么是OCP?(open close principle)
OCP是软件七大开发原则当中最基本的一个原则:开闭原则
对扩展开放 对修改关闭
2.什么是依赖倒置原则(DIP) (dependence inversion principle)
-
什么是依赖倒置原则?(DIP)
面向接口编程,面向抽象编程,不要面向具体编程。
-
依赖倒置原则的目的?
降低程序的耦合度,提高扩展力
-
什么叫做符合依赖倒置?
上 不依赖 下, 就是符合。
-
什么叫做违背依赖倒置?
上 依赖 下,就是违背
只要 “下” 一改动,“上” 就受到牵连。
4.什么是控制反转IOC(inversion of control)
控制反转:IoC(inversion of control)
反转是什么呢?
反转是两件事:
第一件事:我不在程序中采用硬编码的当时来new对象了。(new对象的权力我不管了,new对象的权力交出去了)
第二件事:我不在程序中采用硬编码的方式来维护对象的关系了。(对象之间关系的维护权,我也不管了,交出去了)
控制反转: 是一种编程思想。或者叫做一种新型的设计模式。由于出现的比较新,没有被拿住GoF23中设计模式范围内
5.Spring框架
*spring框架实现了ioc这种思想
Spring框架可以帮你new对象。
Spring框架可以帮你维护对象和对象之间的关系。
*Spring是一个实现了ioc思想的容器
*控制反转的实现方式有很多中,其中比较重要的叫做:依赖注入(dependency injection,简称DI)
*依赖注入DI,又包括常见的两种方式:
第一种:set注入(执行set方法给属性赋值)
第二种:构造方法注入*(执行构造方法给属性赋值)
*依赖注入的“依赖”是什么意思?“注入”是什么意思?
依赖:A和B对象的关系
注入:是一种手段。通过这种手段,可以让A对象和B对象产生关系。
依赖注入:对象A和对象B之间的关系,靠注入的手段来维护。而注入包括:set注入和构造注入。
Spring的IOC容器的底层实际上使用了:工厂模式
ApplicationContext的接口的超级父类接口是Beanfactory(翻译为Bean工厂,就是能够生产Bean对象的一个工厂对象)
BeanFactory是IoC容器的顶级接口。
Spring底层的IoC是怎么实现的?XML解析+工厂模式+反射机制