Spring学习


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事务没有提交的事务的数据)

不可重复读:一个未提交的事务读取到了一个已提交事务的数据

幻读:一个未提交的事务读取到另一个提交事务添加数据


*****************

参考资料:https://www.bilibili.com/video/BV1Vf4y127N5?p=49

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容