Spring框架概述
- Spring是轻量级的开源的javEE框架
- Spring可以解决企业应用开发的复杂性。
- Spring 有两个核心部分: IoC 和Aop。
(1) IOC: 控制反转,把创建对象过程交给Spring进行管理
(2) Aop: 面向切面,不修改源代码进行功能增强。
Spring特点
- 方便解耦,简化开发
- Aop编程支持
- 方便程序测试
- 方便和其他框架进行整合
- 方便进行事务操作
- 降低API开发难度
IoC控制反转
1.什么是IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。
(2)使用IOC目的:为了耦合度降低。
2.控制:由谁控制,控制了什么?在传统java程序设计中,开发人员直接在某个对象内通过new关键字创建另一个对象,是开发人员主动去创建依赖对象;而IoC的设计思想,是通过专门的对象容器来创建和维护对象。
谁控制:IoC容器来控制;控制什么:控制对象的创建和对象间的调度
3.反转:什么是反转,反转了哪些方面?
在传统java应用程序开发中,由开发人员在对象中主动控制其需要的依赖对象;而反转则是把对象依赖的过程颠倒了,即开发人员不再控制其依赖对象,而是由容器来帮助开发人员创建其需要的对象。
对于什么是反转这个问题:由容器帮助开发人员创建依赖对象,对象只是被动地接受依赖对象,对象的控制权不再是开发人员,而是容器;反转了哪些方面:开发人员需要依赖的对象被反转(开发人员控制转为由容器控制)
依赖注入
依赖注入(DI,Dependency Injection)是Spring实现IoC容器的一种重要手段。依赖注入将对象间的依赖的控制权从开发人员转移到容器,降低了开发成本。此时,对象不再需要开发人员手动维护其依赖项,而是通过Spring将依赖关系注入对象中。
依赖注入减少了开发人员维护大量依赖关系的工作量,提高了开发人员的工作效率。
控制反转、依赖倒置和依赖注入三者之间的关系是:控制反转是一种软件设计模式,其遵循了软件设计中的依赖倒置原则;依赖注入是Spring框架实现控制反转的一种方式。
IOC底层原理
- xml解析、工厂模式、反射
IoC操作Bean管理
(1) 基于xml配置文件方式实现
(2) 基于注解方式实现