Spring框架图:
(1)核心层
Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块
(2)AOP层
AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强
Aspects:AOP是思想,Aspects是对AOP思想的具体实现
(3)数据层
Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的
重点内容
(4)Web层
这一层的内容将在SpringMVC框架具体学习
(5)Test层
Spring主要整合了Junit来完成单元测试和集成测试
IOC原理:
new对象的事情交给Spring框架实现(IOC主要解决的问题就是解耦,将创建对象交给IOC容器进行管理,每次需要对象的时候管IOC要,避免改动业务层代码重新new对象)
IoC的全称是Inversion of Control,翻译过来就是控制反转的意思。以前我们的编码习惯是需要什么对象的时候直接new一个出来就好了,然而有个人突然出来跟我们说以后不需要我们主动去new对象了,我们需要什么对象跟它说它就会为我们准备好,这我们当然是乐意的,这个人就是IoC。控制反转的意思就是我们将对象的创建和管理权交给IoC Service Provider(IoC思想的具体实现)
底层原理:
XML解析 + 工厂模式 + 反射
IOC接口(BeanFactory)
IOC接口
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
3.ApplicationContext
ctrl+H
FileSystem:绝对路径在磁盘下的路径
ClassPath:工程文件src下的路径
1.什么是Bean管理(对对象的创建及管理统称为Bean,被创建或被管理的对象在IOC容器中统称为Bean)
Spring创建对象
Spring注入属性
2.Bean管理操作有两种方式
基于xml文件方式
基于注解方式
DI依赖注入:
(1)什么是依赖注入呢?
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入业务层要用数据层的类对象,以前是自己new的现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来这种思想就是依赖注入
(2)IOC容器中哪些bean之间要建立依赖关系呢?
这个需要程序员根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系