IOC (接口)
1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂;
2、Spring提供的IOC容器实现的两种方式(两个接口)
a)BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,在获取对象时才会创建对象。)
b)ApplicationContext接口:BeanFactory接口的子接口,提供更多更强大的功能,提供给开发人员使用(加载配置文件时候就会把在配置文件对象进行创建)推荐使用!
3.ApplicationContext接口有实现类:
4、IOC底层原理:
XML解析,工厂模式,反射
5、IOC操作Bean管理
1什么是bean管理:
bean管理值得是两个操作:1、Spring创建对象 2、Spring注入属性
2bean管理操作有两种方式
1基于XML方式
2基于注解方式
6、FactoryBean
在配置文件定义 bean 类型可以和返回类型不一样 第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean 第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型
调用静态工厂方法创建bean是将对象创建的过程封装到静态方法中。当客户端需要对象时,只需要简单地调用静态方法,而不用关心创建对象的细节。
声明通过静态方法创建的bean需要在<bean>的class属性里指定静态工厂类的全类名,同时在factory-method属性里指定工厂方法的名称。最后使用<constrctor-arg>元素为该方法传递方法参数。
7、Bean的作用域<scope>
默认是<singleton>单实例 ,加载spring配置文件时候就会创建实例对象;
protptype表示多实例对象 ,不是在加载spring配置文件的时候创建对象,在调用getBean方法时候创建多实例对象;
request
session
8、Bean的生命周期:从创建到销毁的过程
(1)通过构造器创建bean实例(无参构造)
(2)为bean的属性设置值和对其他bean的引用(调用set方法)
(3)把bean实例传递bean后置处理器的方法(执行postProcessBeforeInitialization方法)
(4)调用bean的初始化方法(需要进行配置初始化方法)
(5)把bean实例传递bean后置处理器的方法(执行postProcessAfterInitialization方法)
(6) bean可以使用了(对象获取到了)
(7) 当容器关闭是,调用bean的销毁的方法(需要进行配置销毁的方法)
AOP 面向切面编程
1、底层原理:动态代理(两种)
a: 有接口==》JDK动态代理 创建接口实现代理对象,增强类的方法
b: 没有接口==》CGLIB动态代理 创建子类的代理对象,增强类的方法
2、AspectJ
AspectJ实际上是对AOP编程思想的一个实践,不是Spring框架的
Spring事务
底层使用AOP原理
1、四个特性
(1)原子性:要么全成功,要么全失败;
(2)一致性:操作前后总量不发生改变;
(3)隔离性:多事务之间没有影响
(4) 持久性:事务一旦提交,其更改是永久性的,即使数据库系统崩溃也能恢复
2、spring进行事务管理操作(接口:PlatformTransactionManager)
两种操作方式:声明式和编程式事务管理
3、事务的传播特性(propagation)
4、事务的隔离级别(ioslation)
产生三个问题:脏读、幻读、不可重复读
脏读:读取到了未提交的事务(A事务 读取到了B事务没有提交的事务的数据)
不可重复读:一个未提交的事务读取到了一个已提交事务的数据
幻读:一个未提交的事务读取到另一个提交事务添加数据
*****************