一、IOC基础容器
目录
- 传统JavaWeb开发的困惑
- Ioc、DI、AOP思想提出
- Spring框架的诞生
- 基于xml的Spring应用
- 基于注解的Spring应用
1、传统Java开发的问题
传统java开发需要自己用new的方式获得对象,并且很多公共的对象也需要重复new。
-
问题一:层与层之间的紧密度耦合在了一起,接口与具体实现紧密耦合在了一起
解决思路:
程序代码中不要手动new对象,第三方根据要求为程序提供需要的Bean对象
-
问题二:通用的事务功能耦合在业务代码中,通用的日志功能耦合在业务代码中
解决思路:
程序代码中不要手动new对象,第三方根据要求为程序提供需要的Bean对象
这就引入了一个 工厂模式
设计模式
2、IoC、DI、AOP思想提出
- IoC控制反转思想
Inversion of Control控制反转,强调的是原来在程序中创建Bean的权利反转给第三方。
- DI依赖注入思想
Dependency Injection依赖注入,强调的Bean之间关系,这种关系由第三方负责去设置。 - AOP面向切面思想
Aspect Oriented Programming面向切面编程,功能的横向抽取,主要的实现方式就是Proxy - 框架概念的出现
3、Spring框架的诞生
- Spring框架概述
- Spring框架的历史
- Spring Framework技术栈
- BeanFactory快速入门
- ApplicationContext快速入门
- BeanFactory与ApplicationContext的关系
- BeanFactory的继承体系
- ApplicationContext的继承体系
BeanFactory快速入门
- 导入Spring的jar包或Maven坐标
spring-context
- 编写UserSerice接口及其实UserSericeImpl现类
- 创建beans.xml配置文件,将UserSericeImpl的信息配置到该xml中
- 编写测试代码,创建BeanFactory加载配置文件,获取UserService实例对象
ApplicationContext快速入门
BeanFactory与ApplicationContext的关系
BeanFactory的继承体系
DefaultListableBeanFactory
ApplicationContext的继承体系
4、基于xml的Spring应用
- SpringBean的配置详解
- Spring的get方法
- Spring配置非自定义Bean
- Bean实例化的基本流程
- Spring的后处理器
- Spring Bean的生命周期
- Spirng IoC整体流程总结
- Spring xml方式整合第三方框架
4.1 SpringBean的配置详解
-
Bean的基本配置
-
Bean的别名配置
-
Bean的范围配置
-
Bean的延迟加载
-
初始化方法和销毁方法
-
实现InitializingBean接口完成一些Bean的初始化
-
Bean的实例化配置
-
构造方法实例化Bean
-
工厂方式实例化Bean
-
静态工厂方法实例化Bean
-
实例工厂方法实例化Bean
-
实现FactoryBean规范延迟实例化Bean
-
-
Bean的依赖注入配置
- 注入List
- 注入List
-
Spring的其他配置标签
-
Spring默认标签
-
Beans标签
-
import标签
-
alias标签
-
-
Spring自定义标签
-
-
4.2 Spring的get方法
4.3 Spring配置非自定义Bean
1) 配置Druid数据源交由Spring管理
-
导入Druid坐标
-
配置bean
-
代码测试
2) 配置Connection交由Spring管理
3) 配置日期对象交由Spring管理
4) 配置MyBatis的SqlSessionFactory交由Spring管理
4.4 Bean实例化的基本流程
4.5 Spring的后处理器
重要
-
BeanFactoryPostProcessor
-
BeanDefinitionRegistryPostProcessor
借助Spring的后处理实现自定义注解代替beans.xml将bean注册到spring
- BeanPostProcessor
4.6 Spring Bean的生命周期
初始化阶段执行步骤-Bean实例的属性填充
- 属性注入的三种情况
循环引用(循环依赖)
什么是循环引用
三级缓存
循环引用创建
Aware接口属性注入
4.7 Spirng IoC整体流程总结
4.8 Spring xml方式整合第三方框架
Spring xml整合第三方框架的两种方案
Spring 整合Mybatis