SSM框架
文章平均质量分 93
CodeExplorer.
计算机硕士在读,记录学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MyBatis二级缓存深度解析:缓存清理时机与最佳实践】
MyBatis二级缓存的清理机制是一个在简单性与灵活性之间权衡的典范。增删改操作执行后:这是最核心的清理触发点,保证数据一致性手动调用清理方法:提供灵活的手动控制能力定时刷新机制:防止脏数据长时间存留缓存淘汰策略:基于容量和访问模式的智能清理在实际应用中,需要根据业务特点选择合适的缓存策略和清理机制。对于读多写少、数据一致性要求不高的场景,可以积极使用二级缓存提升性能;对于写操作频繁或数据一致性要求高的场景,需要谨慎使用甚至禁用二级缓存。最终建议默认选择LRU策略。原创 2025-12-21 08:49:17 · 820 阅读 · 0 评论 -
【MyBatis延迟加载与缓存机制:深入剖析性能优化核心原理】
/ 延迟加载的关联对象// getter和setter方法// getter和setter方法// ...MyBatis的延迟加载和缓存机制是提升应用性能的重要技术手段。通过深入理解其底层原理和合理配置,可以显著优化数据库访问性能。合理使用延迟加载:对于数据量大、访问频率低的关联对象使用延迟加载,核心数据使用即时加载缓存策略优化:根据数据特性和业务需求选择合适的缓存粒度和过期策略避免N+1查询:通过批量查询、JOIN查询等方式优化延迟加载可能带来的性能问题监控与调优。原创 2025-12-21 08:46:24 · 751 阅读 · 0 评论 -
【MyBatis架构深度解析:从SQL执行到延迟加载原理】
MyBatis作为一个功能丰富的持久层框架,其SQL执行流程和延迟加载机制体现了精良的设计思想。通过动态代理、反射等高级技术,MyBatis在保持简洁API的同时,提供了强大的数据访问能力。深入理解MyBatis的内部机制,不仅有助于我们更好地使用这个框架,还能学习到优秀软件架构的设计原则。在实际开发中,应根据具体场景选择合适的加载策略和优化方案,平衡性能、资源消耗和开发效率。原创 2025-12-21 08:45:40 · 795 阅读 · 0 评论 -
【SpringMVC与SpringBoot注解详解:从入门到实战】
Spring Boot的自动配置是通过@Conditional注解和META-INF/spring.factories文件实现的。// 自定义配置类@Bean// 配置属性类// getter和setter// 在META-INF/spring.factories中注册自动配置org。原创 2025-12-21 08:43:45 · 624 阅读 · 0 评论 -
【SpringBoot自动配置原理与Spring常用注解深度解析】
/ 在当前配置类之前加载// 在当前配置类之后加载// 指定加载顺序@Bean├── src/// getter和setter// getter和setter// 连接逻辑@Bean@Bean在其他项目中引入自定义Starter依赖:</</</</# 启用自定义服务@Service// 业务逻辑通过本文的详细讲解,我们对SpringBoot自动配置原理和Spring常用注解有了全面而深入的理解。遵循约定大于配置。原创 2025-12-21 08:42:18 · 621 阅读 · 0 评论 -
【SpringMVC执行流程与构造方法循环依赖的终极解决方案】
SpringMVC是一个基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。它通过一套注解和配置,让简单的Java类成为处理请求的控制器,无需实现任何接口,同时支持RESTful编程风格,成为现代Web应用开发的首选框架。SpringMVC的核心思想是将Web层进行职责解耦:将复杂的Web请求处理过程分解为多个单一职责的组件,这些组件之间通过约定和接口进行协作,从而降低系统复杂度,提高代码的可测试性和可维护性。原创 2025-12-20 11:07:35 · 760 阅读 · 0 评论 -
【 Spring循环依赖深度解析:三级缓存机制如何破解Bean的“死锁”困境】
/ 一级缓存:存储完全初始化好的单例Bean// 二级缓存:存储提前曝光的单例Bean(已实例化但未初始化)// 三级缓存:存储ObjectFactory,用于生成早期引用一级缓存(singletonObjects):存放已经完全初始化好的单例Bean。这些Bean已经经历了完整的生命周期,包括实例化、属性填充、初始化方法回调等,可以直接被应用程序使用。二级缓存(earlySingletonObjects):存放提前曝光的Bean对象。原创 2025-12-20 11:07:04 · 915 阅读 · 0 评论 -
【Spring事务失效与Bean生命周期:深度剖析与实战解决方案】
问题分析:当存在自定义切面且其优先级高于事务切面时,如果自定义切面捕获了异常但没有重新抛出,事务切面将无法感知到异常,从而导致事务无法回滚。@Aspect@Componenttry {// 捕获异常但没有重新抛出log.error("方法执行异常", e);// 事务切面无法感知异常,不会回滚解决方案在切面中重新抛出异常调整切面顺序,确保事务切面优先级更高在切面中手动设置回滚// 解决方案1:在切面中重新抛出异常@Aspect@Componenttry {原创 2025-12-20 11:06:31 · 906 阅读 · 0 评论 -
【Spring AOP项目实战与事务底层原理全解析】
Aspect@Component@Slf4j@Autowired@Autowired// 获取方法签名// 获取请求信息try {// 记录成功日志// 记录异常日志throw e;= null?= null) {// 异步保存日志});// 获取客户端真实IPif (ip!= 0 &&!原创 2025-12-20 11:06:01 · 689 阅读 · 0 评论 -
【Spring单例Bean的线程安全与AOP深度解析:原理、问题与解决方案】
单例Bean不一定线程不安全:无状态单例Bean是线程安全的,有状态单例Bean需要额外措施保证线程安全优先选择无状态设计:在业务允许的情况下,优先设计无状态Bean合理选择线程安全方案:根据具体场景选择ThreadLocal、锁机制、线程安全容器或原型作用域AOP是实现横切关注点的理想工具:能够有效分离业务逻辑与系统服务合理使用通知类型:环绕通知功能最强大,但也要考虑简单通知类型的适用场景精确控制切入点:使用准确的切入点表达式,避免不必要的性能开销。原创 2025-12-20 11:05:35 · 994 阅读 · 0 评论
分享