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

【八股必备】框架篇面试题

八股思维导图集合--可点击看集合框架篇spring面试官:Spring框架中的单例bean是线程安全的吗?候选人: 嗯! 不是线程安全的是这样的 当多用户同时请求一个服务时容器会给每一个请求分配一个线程这是多个线程会并发执行该请求对应的业务逻辑(成员方法)如果该处理逻辑中有对该单列状态的修改(体现为该单例的成员属性)则必须考虑线程同步问题。 Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。 比如:我们通常在项目中使用的Springbean都是不可变的状态(比如Service类和DA0类)所以在某种程度上说Spring的单例bean是线程安全的。 如果你的bean有多种状态的话(比如View Model对象)就需要自行保证线程安全。最浅显的解决办法就是将多态bean的作用由“singleton”变更为prototype”。什么是AOP面向切面编程用于将那些与业务无关但却对多个对象产生影响的公共行为和逻辑抽取公共模块复用降低耦合你们项目中有没有使用到A0P记录操作日志缓存spring实现的事务 核心是:使用aop中的环绕通知切点表达式(找到要记录日志的方法》通过环绕通知的参数获取请求方法的参数(类、方法、注解、请求方式等)获取到这些参数以后保存到数据库Spring中的事务是如何实现的其本质是通过A0P功能对方法前后进行拦截在执行方法之前开启事务在执行完目标方法之后根据执行情况提交或者回滚事务。Spring中事务失效的场景有哪些异常捕获处理自己处理了异常没有抛出解决:手动抛出抛出检查异常配置rollbackFor属性为Exception非public方法导致的事务失效改为publicSpring的bean的生命周期1.通过BeanDefinition获取bean的定义信息2.调用构造函数实例化bean3.bean的依赖注入4.处理Aware (BeanNameAware BeanFactoryAware ApplicationContextAware)5.Bean的后置处理器BeanPostProcessor-前置6.初始化方法(InitializingBean、init-method)7.Bean的后置处理器BeanPostProcessor-后置8.销毁beanSpring中的循环引用循环依赖循环依赖其实就是循环引用,也就是两个或两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于A循环依赖在spring中是允许存在spring框架依据三级缓存已经解决了大部分的循环依赖一级缓存单例池缓存已经经历了完整的生命周期已经初始化完成的bean对象二级缓存缓存早期的bean对象生命周期还没走完三级缓存缓存的是ObjectFactory表示对象工厂用来创建某个对象的构造方法出现了循环依赖怎么解决A依赖于BB依赖于A注入的方式是构造函数原因由于bean的生命周期中构造函数是第一个执行的spring框架并不能解决构造函数的的依赖注入解决方案使用Lazy进行懒加载什么时候需要对象再进行bean对象的创建public A(Lazy B b){ System.out.println(A的构造方法执行了...); this.b b ; }SpringMVC的执行流程知道嘛用户发送出请求到前端控制器DispatcherServletDispatcherServlet收到请求调用HandlerMapping处理器映射器HandlerMapping找到具体的处理器生成处理器对象及处理器拦截器(如果有)再一起返回给DispatcherServlet。DispatcherServlet调用HandlerAdapter处理器适配器HandlerAdapter经过适配调用具体的处理器Handler/Controller方法上添加了ResponseBody通过HttpMessageConverter来返回结果转换为JSON并响应Springboot自动配置原理1, 在Spring Boot项目中的引导类上有一个注解SpringBootApplication这个注解是对三个注解进行了封装分别是SpringBootConfigurationEnableAutoConfigurationComponentScan2, 其中EnableAutoConfiguration是实现自动化配置的核心注解。 该注解通过Import注解导入对应的配置选择器。内部就是读取了该项目和该项目引用的Jar包的的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。 在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。3, 条件判断会有像ConditionalOnClass这样的注解判断是否有对应的class文件如果有则加载该类把这个配置类的所有的Bean放入spring容器中使用。mybaitsMyBatis执行流程Ø 读取MyBatis配置文件mybatis-config.xml加载运行环境和映射文件Ø 构造会话工厂SqlSessionFactoryØ 会话工厂创建SqlSession对象包含了执行SQL语句的所有方法Ø 操作数据库的接口Executor执行器同时负责查询缓存的维护Ø Executor接口的执行方法中有一个MappedStatement类型的参数封装了映射信息Ø 输入参数映射Ø 输出结果映射Mybatis是否支持延迟加载Ø 延迟加载的意思是就是在需要用到数据时才进行加载不需要用到数据时就不加载数据。Ø Mybatis支持一对一关联对象和一对多关联集合对象的延迟加载Ø 在Mybatis配置文件中可以配置是否启用延迟加载lazyLoadingEnabledtrue|false默认是关闭的延迟加载的底层原理知道吗使用CGLIB创建目标对象的代理对象当调用目标方法时进入拦截器invoke方法发现目标方法是null值执行sql查询获取数据以后调用set方法设置属性值再继续查询目标方法就有值了Mybatis的一级、二级缓存用过吗一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存其存储作用域为 Session当Session进行flush或close之后该Session中的所有Cache就将清空默认打开一级缓存二级缓存是基于namespace和mapper的作用域起作用的不是依赖于SQL session默认也是采用 PerpetualCacheHashMap 存储。需要单独开启一个是核心配置一个是mapper映射文件Mybatis的二级缓存什么时候会清理缓存中的数据当某一个作用域(一级缓存 Session/二级缓存Namespaces)的进行了新增、修改、删除操作后默认该作用域下所有 select 中的缓存将被 clear。

相关文章:

【八股必备】框架篇面试题

八股思维导图集合--可点击看集合 框架篇 spring 面试官:Spring框架中的单例bean是线程安全的吗? 候选人: 嗯! 不是线程安全的,是这样的 当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这是多个线程会并发执行该请求对应的业…...

阿里AgentScope Java智能体框架:像自动驾驶系统一样多智能体协同,开发效率提升5倍

金句摘要:阿里巴巴开源的AgentScope Java框架,将多智能体协同推向新高度。基于ReAct范式,它能像自动驾驶系统一样,让多个AI智能体自主规划、协作执行复杂任务。企业级Java开发者使用后,业务逻辑开发效率实测提升5倍&am…...

Janus-Pro-7B实战:构建基于Vue.js的前端AI对话界面

Janus-Pro-7B实战:构建基于Vue.js的前端AI对话界面 最近在折腾本地大模型,发现Janus-Pro-7B的效果相当不错,推理速度快,回答质量也高。但每次都要在命令行里敲指令,总觉得少了点“产品感”。作为一个全栈开发者&#…...

GPS拒止环境下的机器人有限时间复合学习椭圆封闭控制MATLAB程序

gps拒止环境下机器人有限时间复合学习椭圆封闭控制 MATLAB 程序咱们今天直接上干货,聊聊怎么在GPS信号被屏蔽的工业场景里,让机器人像装了磁铁一样牢牢贴着椭圆轨迹跑。先甩个硬核场景:地下管道巡检机器人突然失去定位信号,这时候…...

采样吞吐量卡在800 QPS上不去?,4步绕过MCP Sampling SDK线程池阻塞、内存泄漏与序列化反模式

第一章:MCP采样接口(Sampling)调用流性能调优指南MCP(Model Control Protocol)采样接口是实时推理服务中高并发低延迟场景的核心组件,其调用流性能直接影响端到端SLO达成率。当采样请求吞吐量突增或P99延迟持续超过150ms时&#x…...

JoyAI LeetCode 805.数组的均值分割 public boolean splitArraySameAverage(int[] nums)

这道题是 LeetCode 805 题「数组的均值分割」,要求判断是否可以将一个整数数组分成两个非空子集,使得两个子集的平均值相等。这是一个比较有挑战性的问题,涉及到数学和动态规划的结合。 解题思路数学转换:首先,我们需要…...

Windows10开机密码丢失?巧用命令提示符轻松重置

1. 当Windows10开机密码丢失时该怎么办? 遇到Windows10开机密码忘记的情况,先别急着重装系统。很多朋友的第一反应可能是找专业维修人员或者直接重装系统,其实完全没必要这么麻烦。Windows系统本身就提供了多种应急解决方案,其中通…...

京东评论和评论数api接口

京东评论api基本介绍京东评论API主要用于获取商品评论相关的数据统计信息。该API可以查询京东商品的评论数量、好评率等关键指标,适用于商品数据分析、竞品监控等场景。主要功能获取京东评论内容数据接口参数典型请求参数包括:json_data {"good_id…...

3步揭秘存储设备真实容量:实战避坑指南

3步揭秘存储设备真实容量:实战避坑指南 【免费下载链接】f3 F3 - Fight Flash Fraud 项目地址: https://gitcode.com/gh_mirrors/f3/f3 在数字时代,存储设备检测已成为保障数据安全的关键环节。当你购买新的U盘或SD卡时,如何确保其标称…...

5大核心优势!Thermo:化工工程师的开源热力学计算引擎

5大核心优势!Thermo:化工工程师的开源热力学计算引擎 【免费下载链接】thermo Thermodynamics and Phase Equilibrium component of Chemical Engineering Design Library (ChEDL) 项目地址: https://gitcode.com/gh_mirrors/th/thermo 在化学工程…...

SolidWorks模型渲染图复古化:使用DeOldify为工业设计图添加历史感

SolidWorks模型渲染图复古化:使用DeOldify为工业设计图添加历史感 你有没有想过,那些用SolidWorks精心设计、渲染得光鲜亮丽的现代产品图,如果穿越回几十年前,会是什么样子?想象一下,一台充满未来感的无人…...

数字填色画生成器完整指南:3分钟将任何图片变成填色游戏

数字填色画生成器完整指南:3分钟将任何图片变成填色游戏 【免费下载链接】paintbynumbersgenerator Paint by numbers generator 项目地址: https://gitcode.com/gh_mirrors/pa/paintbynumbersgenerator 想要将心爱的照片或精美图片变成有趣的数字填色画吗&a…...

G-Helper色彩恢复指南:3步找回华硕笔记本丢失的GameVisual显示效果

G-Helper色彩恢复指南:3步找回华硕笔记本丢失的GameVisual显示效果 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other mode…...

告别硬编码!warm-flow 1.2.8的SPEL表达式实战:从条件分支到动态指派审批人

动态化流程引擎革命:warm-flow 1.2.8的SPEL表达式深度实践 在传统工作流开发中,业务规则与审批逻辑的硬编码问题长期困扰着技术团队。每当审批阈值调整或组织架构变动,开发人员不得不修改Java代码、重新部署应用,这种耦合性严重制…...

51单片机智能窗帘DIY:从Proteus仿真到实物搭建全流程(附代码+避坑指南)

51单片机智能窗帘DIY实战:从仿真到落地的全流程解析 1. 项目概述与核心设计思路 智能窗帘系统作为智能家居的入门级项目,完美融合了传感器技术、电机控制和用户交互设计。本方案采用经典的STC89C52单片机作为控制核心,通过光敏电阻和温度传感…...

告别低效 CRUD:用 Cursor+AI Agent 自动化 80% 开发工作,我的实战优化方案分享

从"重复CRUD机器"到"架构设计师":CursorAI Agent 自动化开发实战 作为一名后端开发者,我曾在3年时间里写了不下10万行CRUD代码——重复的表结构映射、固定格式的接口逻辑、大同小异的参数校验,这些机械性工作消耗了我70%…...

【superpowers基本Skill】test-driven-development 技能

在实现任何功能或bug修复时使用,在编写实现代码之前技能概述test-driven-development 技能:先写测试。看它失败。编写最小代码通过。核心原则:如果你没有看测试失败,你就不知道它是否测试了正确的东西。违反规则的字面意思就是违反规则的精神…...

HC32F460 DMA数据传输实战:从LED灯状态看代码调试技巧(附完整工程)

HC32F460 DMA调试实战:从LED灯状态反推代码问题的5种高阶技巧 第一次用DMA传输数据时,我看着开发板上的红色LED陷入沉思——明明寄存器配置都对着手册检查了三遍,为什么数据传输还是失败了?直到后来发现是地址递增模式设反了。这种…...

国产大模型本地部署指南:DeepSeek V3.2/Qwen3.5 一键部署,微调 + 推理全流程踩坑总结

国产大模型本地部署全攻略:DeepSeek V3.2/Qwen3.5 一键部署微调推理踩坑实战 一、前置准备:硬件与环境选型 1. 硬件配置参考 本地部署大模型的核心瓶颈是显存,以下是针对不同场景的配置建议: 模型版本量化等级最低显存要求推荐…...

Hunyuan-MT Pro一文详解:Hunyuan-MT-7B模型能力边界与调优技巧

Hunyuan-MT Pro一文详解:Hunyuan-MT-7B模型能力边界与调优技巧 1. 开篇:重新认识现代翻译工具 如果你还在为语言障碍而烦恼,或者需要频繁处理多语言文档,那么今天介绍的Hunyuan-MT Pro可能会改变你的工作方式。这不是又一个简单…...

SiameseAOE模型在AIGC内容审核中的应用:自动识别违规观点

SiameseAOE模型在AIGC内容审核中的应用:自动识别违规观点 最近和几个做社区运营的朋友聊天,他们都在抱怨同一件事:用户生成的内容越来越多,审核压力越来越大。特别是现在AIGC工具普及了,用户随手就能生成一大段文案或…...

3个技巧快速掌握卫星干涉测量:PyGMTSAR完整指南

3个技巧快速掌握卫星干涉测量:PyGMTSAR完整指南 【免费下载链接】pygmtsar PyGMTSAR (Python InSAR): Powerful and Accessible Satellite Interferometry 项目地址: https://gitcode.com/gh_mirrors/py/pygmtsar 你是否曾为卫星干涉测量(InSAR&a…...

避坑指南:Aspose.Slides转换PPT时水印问题的3种解决方案(附15.9.0版本配置)

Aspose.Slides水印问题全解析:从授权配置到替代方案 最近在技术社区看到不少开发者讨论Aspose.Slides转换PPT时遇到的水印问题。作为一款功能强大的文档处理组件,它在企业级应用中确实能大幅提升工作效率,但未经授权使用时出现的评估水印也确…...

GLM-Image WebUI效果展示:中国风建筑、科幻城市、抽象艺术三类风格作品集

GLM-Image WebUI效果展示:中国风建筑、科幻城市、抽象艺术三类风格作品集 1. 项目简介与展示概述 智谱AI的GLM-Image文本生成图像模型提供了一个直观易用的Web交互界面,让用户能够轻松创作高质量的AI图像。这个基于Gradio构建的现代化界面,…...

MUSIC算法实战:从原理到MATLAB代码的DoA/AoA高精度估计

1. MUSIC算法与DoA/AoA估计基础 第一次接触MUSIC算法时,我被它优雅的数学形式和惊人的定位精度所震撼。这个诞生于1979年的经典算法,至今仍是阵列信号处理领域的标杆。简单来说,它就像个超级"耳朵",能通过一组天线准确听…...

LiuJuan20260223Zimage模型数据结构优化:提升大规模提示词处理效率

LiuJuan20260223Zimage模型数据结构优化:提升大规模提示词处理效率 最近在折腾一个国风主题的AI绘画项目,用户量上来之后,服务器压力陡增。最头疼的就是处理海量的提示词请求——用户输入一段描述,我们得快速理解、组织&#xff…...

MedGemma 1.5应用指南:就医前如何用AI整理症状和问题

MedGemma 1.5应用指南:就医前如何用AI整理症状和问题 1. 为什么需要AI辅助就医准备 现代医疗体系中,患者与医生的交流时间往往非常有限。研究表明,平均每次门诊问诊时间不足10分钟。在这短暂的时间内,患者需要准确描述症状、回答…...

Python入门者的CasRel模型初体验:三行代码实现关系抽取

Python入门者的CasRel模型初体验:三行代码实现关系抽取 你是不是觉得关系抽取听起来特别高大上,感觉是那些AI专家才能玩转的技术?我以前也这么想,总觉得要搞懂复杂的神经网络、要处理海量数据、要写一大堆代码才能让机器从文本里…...

跨平台实战:Windows/macOS同步部署OpenClaw与Qwen3.5-4B-Claude

跨平台实战:Windows/macOS同步部署OpenClaw与Qwen3.5-4B-Claude 1. 为什么需要跨平台部署? 去年我换了新工作,公司配发的是Windows笔记本,而家里用的则是MacBook Pro。这种混合环境让我在尝试OpenClaw时遇到了不少麻烦——配置文…...

FUTURE POLICE实战:在线教育视频字幕自动对齐方案

FUTURE POLICE实战:在线教育视频字幕自动对齐方案 在在线教育行业,视频课程的字幕同步问题一直是个痛点。传统字幕制作需要人工逐句校对时间轴,一个小时的课程视频可能需要3-4小时的字幕校对时间。FUTURE POLICE的强制对齐技术为这个问题提供…...