目录
一、为什么要学Spring
IT业的任何一门技术,都必须要抢占一定市场,才会有更多人去使用学习,Spring技术是企业级开发的必备技能。时代发展,使得一个系统的复杂度不断增加,Spring从其中脱颖而出。
1、Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%
2、Spring解决了哪些问题
简化开发,降低企业级开发的复杂性
框架整合,高效整合其他技术,提高企业级应用开发与运行效率
二、学什么
1、简化开发
Spring提供了两大核心技术,IoC和AOP,这两个技术存在才可以简化开发,因此,这两个技术成文我们首先要学习的内容。基础AOP又衍生出来事务处理,这是Spring事务中的亮点,让我们事务编写更高效、更简洁、功能更强大。
2、框架整合
MyBatis,MyBatis-plus,Struts,Struts2,Hibernate等等,对框架整合来说,Spring做到了极致,对于市面主流的框架都能进行整合
三、怎么学
1、学习Spring框架设计思想
2、学习基础操作,思考操作与思想间的联系
3、学习案例,熟练应用操作的同时,体会思想
四、了解家族
1、官网:spring.io
2、Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能
主要学习:
五、发展史
六、Spring Framework系统架构图、学习路线
Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。5.x架构官网并未给出,说明4.X架构已经是趋于稳定。
学习路线:
第一部分:核心容器
核心概念(IoC/DI)
容器基本操作
第二部分:整合
整合数据层技术MyBatis
第三部分:AOP
核心概念
AOP基础操作
AOP实用开发
第四部分:事务
事务实用开发
第五部分:家族
SpringMVC
SpringBoot
SpringCloud
七、核心概念
提出概念是不容易的,提出概念一般是为了解决问题,那现在有什么问题呢?
代码现状:
如果来了一个全新的实现BookDaoImpl2,这会带来一个问题,业务层的代码也要换,这时候就要重新编译、重新测试、部署发布。这些根本原因就是代码耦合度高
解决方法:
使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象
1、IoC(Inversion of Control)控制反转
对象的创建控制权由程序转移到外部,这种思想称为控制反转
2、Spring技术对IoC思想进行了实现
Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”
IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean
3、DI(Dependency Injection)依赖注入
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
原来我们dao是要new一个对象,现在不了,放进一个IoC容器,dao能放进去,那service也能放进去。IoC造对象,造出来的叫Bean,你用IoC直接给你,现在程序运行需要service对象,但是还有一个问题,service运行还需要dao对象,IoC会将service和dao关系进行绑定,这种思想就是DI
目标:充分解耦
使用IoC容器管理bean(IoC)
在IoC容器内将有依赖关系的bean进行关系绑定(DI)
最终效果
使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系