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

八股框架篇

ps 最快速度过完八股,然后进阶学习

Bean是线程安全的吗

具体看我们的写法,有没有共享的变量,如果有并且是单例,那么就不是线程安全的,如果是多例则是线程安全的

AOP是什么

AOP是简化开发提升开发效率的一种思想,他会在原方法执行前后,执行一组方法,常用在日志记录,功能增强等方面 面向切面编程

谈谈简易原理

我们写注解,假设改注解功能为打印字符,那么我们在某个地方通过反射遍历所有的类方法,如果类方法上有我们对应的注解,那么我们就可以反射执行

那么aop

Spring AOP 帮我们封装了扫描、代理的底层逻辑. AOP 的核心实现机制就是动态代理——Spring 会为被切面切入的目标对象创建一个代理对象,所有对目标对象的调用都会先经过代理对象,代理对象在调用目标方法的前后插入切面逻辑(比如你要的打印字符)。

代理分为cglib代理和反射代理

项目中有没有使用AOP


我们之前在后台管理系统中使用AOP来记录系统操作日志。主要思路是使用AOP的环绕通知和切点表达式,找到需要记录日志的方法,然后通过环绕通知的参数获取请求方法的参数,例如类信息、方法信息、注解、请求方式等,并将这些参数保存到数据库

Spring中的事务是如何实现的?

通过AOP实现的,为对应的加了事务注解的方法代理其对象后,方法前开启注解,方法后关闭事务

事务失效场景

1.异常为抛出自己处理

2.未捕获异常

3.事务方法不是公开的

Spring Bean生命周期

配置解析完成

生成 BeanDefinition

doRegistBeanDefinition ←(你现在这一步)

getBean()

实例化 + DI

通过BeanDefinition获取bean的定义信息

调用构造函数实例化bean

bean的依赖注入

处理Aware接口(BeanNameAware、BeanFactoryAware、ApplicationContextAware)

Bean的后置处理器BeanPostProcessor-前置

初始化方法(InitializingBean、init-method)

Bean的后置处理器BeanPostProcessor-后置

销毁bean

循环引用问题

https://blog.csdn.net/weixin_47759174/article/details/157183126?spm=1001.2014.3001.5501

Spring解决循环依赖是通过三级缓存,对应的三级缓存如下所示:

循环引用关键问题就是,卡在初始化那一步,大家无法完成依赖注入行测完全的对象,spring加入了缓存机制,使得可以在初始化那里拿到类似于引用的东西,只是还没初始化,直到一方创建成功

SpringMVC

https://blog.csdn.net/weixin_47759174/article/details/157185205?spm=1001.2014.3001.5501

SpringBoot自动配置原理

Spring 的常见注解有哪些?

Springmvc场景注解

Springboot场景注解

Mybatis执行流程

https://blog.csdn.net/weixin_47759174/article/details/157585554?spm=1001.2014.3001.5501

mybatis延迟加载

缓存

http://www.cnnetsun.cn/news/1389887.html

相关文章:

  • 精益生产的核心是什么?以客户价值为导向的浪费消除逻辑
  • Qwen3-32B-Chat实战案例:本地部署后集成向量数据库构建智能客服
  • Neeshck-Z-lmage_LYX_v2应用案例:电商卖家如何批量生成商品场景图
  • Qwen-Image算力适配:CUDA12.4+RTX4090D下Qwen-VL显存占用与吞吐量调优指南
  • 5款免费阅读工具完全指南:解锁信息自由的终极解决方案
  • YOLOv13小白教程:无需配置,一键启动目标检测模型
  • Unity手游UI避坑指南:用Screen.safeArea搞定iPhone 14 Pro和安卓各种刘海屏
  • YOLO3D实战:如何在KITTI数据集上实现3D点云实时检测(附完整训练代码)
  • 显示器工程师不会告诉你的EDID秘密:Display Descriptor Block里的H/V同步参数到底怎么调?
  • 李慕婉-仙逆-造相Z-Turbo 技术架构深度解析:从用户请求到图像生成的完整链路
  • RePKG全能解析:Wallpaper Engine资源高效处理完全指南
  • Matlab工具箱管理进阶:如何自定义安装路径并避免路径冲突(R2020a实例演示)
  • 计算机毕业设计:Python新闻热点趋势预测与情感分析系统 Flask框架 爬虫 SnowNLP ARIMA 可视化 数据分析 大数据(建议收藏)✅
  • 腾讯混元翻译模型功能体验:民汉语种互译,网页一键推理真方便
  • Kook Zimage真实幻想Turbo快速部署:阿里云/腾讯云GPU实例一键镜像
  • 手把手教你用NSIS参数实现自动化部署:从静默安装到自定义路径
  • DAMOYOLO-S嵌入式设备部署初探:STM32F103C8T6平台上的轻量化推理
  • 基于GB/T 25000.51,用户文档测试中的测试技术指标分享
  • 小白也能玩转AI看图说话:OFA图像描述镜像一键部署教程
  • Positron断网保护全攻略:SSH断开后如何找回未保存的R代码?
  • 5分钟部署Qwen3-1.7B:跟着教程一步步来,轻松搭建AI对话机器人
  • 李慕婉-仙逆-造相Z-Turbo使用教程:小白也能玩的AI绘画
  • 无人机/农机开发者必看:华大TAU1201双频模块在动态场景下的5个调优技巧
  • 反向传播算法30年:从1986年经典论文到现代深度学习的演变之路
  • 首尔大学突破:多摄像机一秒实现真实世界三维场景重建
  • Hot100中的:图论专题
  • 3步激活老旧Mac潜能:OpenCore Legacy Patcher全流程指南
  • C盘空间告急?傲梅分区助手无损扩容实战指南
  • Nunchaku-flux-1-dev构建智能体(Agent):自主完成多轮图像修改任务
  • mmdetection3d分布式训练实战:从单机多卡到多机多卡配置详解