一、Spring介绍
1.Spring是一个开源框架,该框架的结构是分层架构,这是Spring框架的主要优势。
2.Spring是以IoC、AOP为主要思想,在Spring框架中,通过配置创建类对象,由Spring在运行阶段实例化、组装对象
IoC:Inversion of Control控制反转或反向控制
AOP:Aspect Oriented Programming面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活,扩展性更好,可以随时地添加、删除某些功能
3.Spring框架是“一站式”框架,即Spring在JavaEE的三层架构中,每一层都采用不同地解决技术
JavaEE的三层架构:表现层(Web层),业务逻辑层(Service层),数据访问层(DAO层)
二、Spring生态
图来自Spring官网
三、Spring框架模块
图来自Spring官网
四、Spring核心思想
1.一些基本概念
IoC:Inversion of Control控制反转或反向控制,是框架的共有特性,控制权从应用程序转移到框架
IoC容器:实现了IoC思路的容器
DI:Dependency Injection依赖注入,用一个单独的对象(装配器)来配置对象之间的依赖关系
2.IoC容器特点
(1)不需要主动new对象:只需要描述对象如何创建,IoC容器将会自动创建对象
(2)不需要主动装配对象之间的依赖关系:只需要描述需要的服务(组件),IoC容器将自动将他们关联在一起
(3)主动变被动:也称为好莱坞法则
(4)迪米特法则:也称最少知识法则,每个对象之间了解的越少越好,即两个对象之间的关联越少越好
(5)IoC容器是一种减少类与类之间依赖的设计原则
3.IoC容器的理解
(1)控制
IoC容器的控制是指IoC容器控制应用程序所需要的资源(对象、文件...),而之所以要控制是为了要实现解耦组件之间的关系,即上面所说的迪米特法则,为了让组件之间尽量独立,互不影响
(2)反转
之前的程序都是应用程序来控制,而现在是IoC容器来控制,这样,控制权从之前的应用程序变为了IoC容器,因此称为反转
4.DI的理解
DI:Dependency Injection依赖注入,用一个单独的对象(装配器)来配置对象之间的依赖关系
(1)依赖
应用程序依赖于IoC容器装配类之间的关系
(2)注入
IoC容器注入应用程序需要的资源(类之间的关系)
5.DI的优点
(1)只需要观察依赖注入的机制,就可以掌握整个依赖
(2)组件之间的依赖关系由容器在运行期决定
(3)依赖注入的目标是为了提升组件重用的概率