一、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

1106

被折叠的 条评论
为什么被折叠?



