20230305学习计划
迪丽瓦拉
2024-05-30 22:14:02
0

目录

第二天学习开发框架

前言

一、巩固复习第一天20230304学习笔记

二、SpringMVC中的控制器是不是单例模式?如果是,如何保证线程安全?

1、控制器是单例模式,是线程不安全的。

2、Spring中保证线程安全的方法:

三、Spring事务传播机制

四、Spring框架中Bean的创建过程是怎么样的?

五、Spring事务失效的十二大场景?

总结


第二天学习开发框架


文章目录

  • 系列文章目录
  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

前言

今天是开始准备开发框架面试题的第二天,计划今天可以使用六个小时用来学习。


一、巩固复习第一天20230304学习笔记

20230304学习笔记_bug说技术的博客-CSDN博客

二、SpringMVC中的控制器是不是单例模式?如果是,如何保证线程安全?

1、控制器是单例模式,是线程不安全的。

2、Spring中保证线程安全的方法:

  • 将scop设置成非singleton,prototype、reqeust。
  • 最好的方式是将控制器设置成无状态。

三、Spring事务传播机制

REQUIRED(默认):有则加,无则创。

SUPPORTS:有则加。

MANDATORY:有则加,无则错。

REQUIRED_NEW:无则创,有则挂,调用者和被调用者事务相互独立。

NOT_SUPPORTS:有则挂起,无则以非事务方式执行。

NEVER:以非事务方式执行,调用方有事务,则抛出异常。

NESTED:如果当前存在事务,则嵌套到当前事务。如果当前不存在事务,以REQUIRED的操作一样,开启一个新的事务。

和REQUIRES_NEW的区别

REQUIRES_NEW是创建一个新的事务与原有事务无关,NESTED创建子事务,原有事务为父事务。REQUIRES_NEW不会被原有的事务影响,但NESTED会受到原有事务的影响。

和REQUIRED的区别

REQUIRED新开启的事务会影响原来事务,比如新开启的事务回滚,原有的事务也会回滚。

NESTEDG 回滚如果被捕捉异常,不会影响原有事务。

四、Spring框架中Bean的创建过程是怎么样的?

首先分为四个步骤:实例化=》属性赋值=》初始化=》销毁。

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:  @postConstruct

7、BeanPostProcessor后置处理方法:PostProcessAfterInitilization方法。

8、DisposableBean:当bean实现这个接口时,destory();

9、destory-method: @PreDestory。

五、Spring事务失效的十二大场景?

1、访问权限private。

2、final、static 。

3、内部调用:@service @autoWrite proxy

4、未添加到spring容器中。

5、未开启事务,point。

6、数据库未支持Myisim  innoDB

7、设置错误的事务传播特性propation。

8、捕捉异常

9、抛出无法处理异常,运行时异常、error错误

10、自定义了回滚异常

11、多各线程调用

12、嵌套事务回滚多了


总结

以上是今天的全部内容。

相关内容