目录
第二天学习开发框架
前言
一、巩固复习第一天20230304学习笔记
二、SpringMVC中的控制器是不是单例模式?如果是,如何保证线程安全?
1、控制器是单例模式,是线程不安全的。
2、Spring中保证线程安全的方法:
三、Spring事务传播机制
四、Spring框架中Bean的创建过程是怎么样的?
五、Spring事务失效的十二大场景?
总结
文章目录
今天是开始准备开发框架面试题的第二天,计划今天可以使用六个小时用来学习。
20230304学习笔记_bug说技术的博客-CSDN博客
REQUIRED(默认):有则加,无则创。
SUPPORTS:有则加。
MANDATORY:有则加,无则错。
REQUIRED_NEW:无则创,有则挂,调用者和被调用者事务相互独立。
NOT_SUPPORTS:有则挂起,无则以非事务方式执行。
NEVER:以非事务方式执行,调用方有事务,则抛出异常。
NESTED:如果当前存在事务,则嵌套到当前事务。如果当前不存在事务,以REQUIRED的操作一样,开启一个新的事务。
和REQUIRES_NEW的区别
REQUIRES_NEW是创建一个新的事务与原有事务无关,NESTED创建子事务,原有事务为父事务。REQUIRES_NEW不会被原有的事务影响,但NESTED会受到原有事务的影响。
和REQUIRED的区别
REQUIRED新开启的事务会影响原来事务,比如新开启的事务回滚,原有的事务也会回滚。
NESTEDG 回滚如果被捕捉异常,不会影响原有事务。
首先分为四个步骤:实例化=》属性赋值=》初始化=》销毁。
1、实例化:两个时机:a、客户主动向容器申请一个bean时,b、当容器初始化一个bean时发现还需要另一个bean。BeanDefinition对象保存相关信息。
2、设置对象属性(依赖注入):Spring通过Definition找到对象依赖的其它对象,并将这些对象赋予当前对象。
3、初始化(Aware):BeanNameAware、BeanClassLoaderAware、BeanFactoryAware、ApplicatonContextAware;
4、BeanPostProcessor前置处理:调用BeanPostProcessor的postProcessBeforeInitailization方法。
5、InitializingBean:就会实现afterPropertiesSet方法。
6、init-method:
7、BeanPostProcessor后置处理方法:PostProcessAfterInitilization方法。
8、DisposableBean:当bean实现这个接口时,destory();
9、destory-method: @PreDestory。
1、访问权限private。
2、final、static 。
3、内部调用:@service @autoWrite proxy
4、未添加到spring容器中。
5、未开启事务,point。
6、数据库未支持Myisim innoDB
7、设置错误的事务传播特性propation。
8、捕捉异常
9、抛出无法处理异常,运行时异常、error错误
10、自定义了回滚异常
11、多各线程调用
12、嵌套事务回滚多了
以上是今天的全部内容。