当前位置: 首页 > news >正文

20230305学习计划

目录

第二天学习开发框架

前言

一、巩固复习第一天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:<bean init-method=xxx>  @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、嵌套事务回滚多了


总结

以上是今天的全部内容。

http://www.lryc.cn/news/33789.html

相关文章:

  • SocketCan 应用编程
  • 从零学习python - 04函数方法与返回值
  • MySQL实战之事务到底是隔离的还是不隔离的
  • Elasticsearch:理解 Master,Elections,Quorum 及 脑裂
  • 【致敬女神】HTMLReport应用之Unittest+Python+Selenium+HTMLReport项目自动化测试实战
  • JAVA的16 个实用代码优化小技巧
  • 并发编程的三大挑战之原子性及其解决方案
  • QML动画(其他的动画)
  • Spark 配置项
  • 掌握Vue3模板语法,助你轻松实现高效Web开发
  • Jmeter+Ant+Jenkins接口自动化测试平台搭建
  • ncnn部署(CMakelists.txt)
  • SQL分库分表
  • 大数据分析案例-基于逻辑回归算法构建微博评论情感分类模型
  • 0105深度优先搜索算法非递归2种实现对比-无向图-数据结构和算法(Java)
  • 传统手工数据采集耗时耗力?Smartbi数据填报实现数据收集分析自动化
  • 《Spring源码深度分析》第5章 Bean的加载
  • 华为OD机试真题Java实现【求最大数字】真题+解题思路+代码(20222023)
  • Java——异常机制
  • 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(下)
  • ESP32设备驱动-土壤湿度传感器驱动
  • 公网远程连接MongoDB数据库【内网穿透】
  • SQL注入——floor报错注入
  • P6入门:在EPS下创建项目(P6Professional)
  • Linux安装及管理应用和账号和权限管理 讲解
  • 【JDK1.8 新特性】Stream API
  • Springboot Maven打包跳过测试的五种方式总结 -Dmaven.test.skip=true
  • 静态链接和动态链接的区别
  • MATLAB学习笔记1
  • Gorm -- 查询记录