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

SSM拷打最后一讲!!!

13. SpringMVC常见的注解有哪些?

SpringMVC 常见注解我一般按功能记。

请求映射相关有:
@RequestMapping
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping

参数获取相关有:
@RequestParam
@PathVariable
@RequestBody
@RequestHeader

响应相关有:
@ResponseBody
@RestController

14. Springboot 常见注解有哪些?

Spring Boot 常见注解我会按场景分。

最核心的是@SpringBootApplication,它是启动类注解,里面包含@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan,其中@EnableAutoConfiguration是自动配置的核心。

配置读取方面,常用@Value读取单个配置项,@ConfigurationProperties批量绑定配置属性。

自动配置里还会经常看到条件注解,比如@ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty,它们决定某个自动配置或 Bean 是否生效。

如果是 Web 项目,也会常用@RestController@GetMapping@PostMapping这些,但它们更准确说属于 SpringMVC 注解,只是在 Spring Boot 项目里很常见。

15. MyBatis执行流程?

读配置->解析成mappedstatement->构建出sqlsessionfactory->sqlsession获取代理对象-> 找对应的mappedstatement->executor->jdbc->映射成对象

MyBatis 的执行流程我会分成初始化和真正执行 SQL 两段。

初始化时,MyBatis 会读取全局配置文件和 Mapper XML,解析成一个个MappedStatement,里面包含 SQL、参数映射、结果映射这些信息,然后构建出SqlSessionFactory

真正执行时,我们先通过SqlSession获取 Mapper 接口的代理对象。调用 Mapper 方法时,代理对象会根据接口全限定名和方法名,找到对应的MappedStatement。然后交给Executor执行器处理。

执行过程中,MyBatis 会把方法参数映射到 SQL 里的占位符,底层通过 JDBC 执行 SQL。查询完成后,再把ResultSet结果集按照配置或实体字段映射成 Java 对象返回

16. Mybatis是否支持延迟加载?原理呢?

支持->用在哪->体现在哪->原理

MyBatis 支持延迟加载,主要用于关联查询,比如一对一的association或一对多的collection。开启后,主对象查询出来时,不会马上把关联对象都查出来,而是在真正访问关联属性时再执行对应 SQL。

底层原理主要是动态代理。MyBatis 会给需要延迟加载的关联对象生成代理对象,当调用这个代理对象的方法时,代理会触发额外查询,通过 SqlSession 执行 SQL,把关联数据加载出来并返回。

这里要注意,延迟加载不是简单判断属性是不是 null,而是通过代理拦截访问行为来触发查询。

17. Mybatis的一级、二级缓存用过吗?

作用域->例子

MyBatis 一级缓存我用得比较多,它是默认开启的,作用域是同一个SqlSession。也就是说,在同一个SqlSession里,如果执行相同 SQL、参数也一样,第二次查询可能直接从一级缓存拿,不再查数据库。但只要执行了增删改,或者提交、回滚、关闭SqlSession,一级缓存就会被清掉。

二级缓存我了解过,但项目里一般比较谨慎使用。它是 Mapper,也就是 namespace 级别的缓存,需要手动开启,多个SqlSession可以共享。但是它有一致性风险,尤其是多表查询或者数据更新比较频繁时,很容易出现缓存和数据库不一致。所以实际项目里,我们更多会用 Redis 做业务缓存,而不是依赖 MyBatis 二级缓存。

18. Mybatis的二级缓存什么时候会清理缓存中的数据?

当某个 Mapper (namespace) 下执行新增、修改、删除操作时,默认会清空该 namespace 下的二级缓存,避免后续 select 读到旧数据。

http://www.zskr.cn/news/1434609.html

相关文章:

  • ChatTTS-ui音色工程革命:从参数调试到场景化语音合成的技术实践
  • 2026衢州市防水补漏公司权威推荐:卫生间、阳台、屋顶、地下室、飘窗、外墙漏水,专业防水公司TOP5口碑榜+全维度测评(2026年6月最新深度行业资讯) - 防水百科
  • Win10激活失败?可能是你的批处理脚本过期了!保姆级排查与服务器地址更新指南
  • 技术、社会与未来的十字路口:从业者观察与思考
  • 3个步骤让Mac鼠标滚动如触控板般顺滑:Mos滚动优化终极指南
  • 3步实现智慧教育平台教材批量下载:告别繁琐操作的高效解决方案
  • 3天重构用户分层体系:基于Gemini原生Embedding向量聚类的无监督分层法,准确率提升至89.6%
  • 2026年4月有实力的电加热管批发厂家推荐,电加热管/不锈钢电热管/加热管/电热管,电加热管采购厂家哪家可靠 - 品牌推荐师
  • 基于ESP8266与WS2812B的物联网天气站:从硬件搭建到软件实现
  • Betaflight:让你的无人机飞行更稳定、更智能的终极开源飞控方案
  • 2026杭州婚纱摄影行业白皮书|真实测评避坑指南|优选榜单实拍测评 - 企业推荐官【官方】
  • Windows性能调优实战:用QueryPerformanceFrequency和QPC精准测量函数耗时(避坑TSC与多核)
  • 别再让GPS“骗”你了——福特用一张卫星图,教会汽车“对号入座”
  • 2026年沈阳手表回收门店推荐:添价收手表回收同城高价变现首选 - 薛定谔的梨花猫
  • 基于硬件FFT与辉光管的复古音频频谱仪设计与实现
  • 苏州苏易房屋修缮|专业免砸砖防水堵漏 厨卫飘窗屋面地下室本地专修 - 吉修匠
  • 基于Arduino与超声波传感器的智能盲杖:从原理到实践的避障系统设计
  • 2026杭州婚纱摄影行业白皮书|真实测评口碑榜单 - 企业推荐官【官方】
  • 基于BEAM理念的太阳能心跳灯:从电路原理到PCB制作全解析
  • 企业培训平台怎么选?2026年主流品牌深度对比与推荐:钉学凭综合实力领跑 - 玖叁鹿
  • 杭州代理记账公司推荐清单|小微企业报税做账,优先选择视界凯信的理由 - 玖叁鹿
  • Arduino记忆大师:从硬件搭建到状态机编程的嵌入式游戏开发实战
  • 华硕笔记本终极瘦身指南:用G-Helper替代臃肿的Armoury Crate
  • Windows 11 24H2 LTSC微软商店恢复指南:3分钟解决精简系统应用生态缺失问题
  • 基于地理围栏的智能家居自动化提醒系统搭建指南
  • 【Gemini情感分析实战指南】:20年NLP专家亲授5大避坑法则与3个高转化落地场景
  • 基于I2C双Arduino架构实现红外遥控步进电机实时控制
  • 5个神奇步骤,让res-downloader帮你轻松下载全网热门资源!
  • 专业干货!低查重AI教材写作技巧,搭配工具3天完成教材初稿
  • 2026 长沙系统门窗:权威攻略 可靠选型指南 - 涂伟