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

面试题框架篇

Spring框架中的单例bean是线程安全的吗

不是

Spring框架并没有对单例bean进行任何多线程的封装处理  关于单例bean的线程安全和并发问题 需要开发者自行去确定

通常项目里边使用的springbean都是不可改变的  某种程度上来说 spring单例的bean是线程安全的

如果你的bean有多种状态的话  就需要自行保证线程安全  最简单的办法就是将多态bean有singleton改成prototype

什么AOP

面向切面编程

抽取公共模块 降低耦合  提高代码的复用

一般可以做公共日志保存  事务处理

项目中有没有使用AOP

后台管理系统就是使用aop来记录了系统的操作日志

主要思路是这样的 使用aop 中的环绕通知+切点表达式

Spring中的事务是如何实现的

本质上就是通过aop完成的  对方法前后进行拦截 在执行方法之前开启事务 在执行完目标方法之后 提交或者回滚事务

事务失效的场景

比如方法上异常捕获处理  自己处理了异常 没有抛出 就会导致事务失效 所以一般处理了异常以后  别忘了抛出去

还有如果方法抛出检查异常 如果报错也会导致事务失效

还有如果方法上不是public修饰的 也会导致事务失效

Spring的bean的生命周期

首先BeanDefinition类获取bean的定义信息

里边封装了bean的所有信息 比如类的全路径 是否言辞加载 是否是单例这些

创建bean的时候 第一步 调用构造函数实例化bean

第二步 bean依赖注入

3 处理Aware接口

4 bean的后置处理器

5 初始化方法 实现了接口IntializingBean

6 执行了bean的后置处理器 BeanPostProcessor

最后就是销毁bean

Spring中的循环引用

A依赖于B  B依赖于A

循环依赖在Spring是允许存在的  spring框架依据三级缓存已经解决了大部分的循环依赖

构造方法出现了循环依赖

j太多了  先不看了 也不是特别的重点

SpringMVC执行流程

东西居多

Spring自动装配原理

Spring常见注解

SpringMVC常见注解

Springboot常见注解

MyBatis执行流程

Mybatis的延迟加载底层逻辑

Mybatis一二级缓存


http://www.kler.cn/news/365413.html

相关文章:

  • Claude Financial Data Analyst:基于Claude的金融数据分析工具!免费开源!
  • CORS预检请求配置流程图 srpingboot和uniapp
  • [C++进阶数据结构]红黑树(半成品)
  • 飞睿智能超宽带UWB音频传输模块,超低延迟数据传输,实时音频声音更纯净
  • Python基于amazon/chronos-t5-base的预训练模型离线对时间系列数据的未来进行预测
  • 构建未来:AI初创企业的投资桥梁 —— AI Angels Fund
  • JavaWeb——Maven(6/8):依赖管理-依赖传递 (介绍、直接依赖与间接依赖、演示、排除依赖)
  • 题解 力扣 LeetCode 739 每日温度 C++
  • 海外云手机怎样助力亚马逊店铺运营?
  • 合约门合同全生命周期管理系统:从合同创建到归档的全流程管理解决方案
  • Spring MVC 原理与源码
  • 六个方向比较分析:ChatGPT-o1-preview与 ChatGPT-4o在论文写作辅助上的差异
  • 富格林:察觉欺诈有效追损措施
  • 解决运行jar错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  • webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
  • 当遇到 502 错误(Bad Gateway)怎么办
  • 【Python】实战:猜数游戏
  • 如何在 Ubuntu 18.04 上使用 Let‘s Encrypt 保护 Apache
  • 挖矿病毒的处理
  • 用STM32硬件思维学JAVA--23种设计模式
  • 分布式解决方案---分布式ID
  • 自动化测试工具Appium介绍
  • Java基础选择题
  • win10 opencv gpu c++版本编译教程
  • HarmonyOS 5.0应用开发——Navigation实现页面路由
  • 全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?