
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要: Docker是一种轻量级容器技术,通过镜像打包应用及环境,实现跨平台一致运行。相比传统虚拟机,Docker直接共享宿主机内核,启动更快(秒级)、资源占用更低(MB级),支持快速部署和扩缩容。核心组件包括镜像(只读模板)、容器(运行实例)和仓库(镜像存储)。CentOS安装需配置阿里云镜像加速器提升下载效率。Docker的优势包括环境一致性、高效资源利用和模块化设计,而Podman作为替代方
IOC(控制反转):把对象的创建权交给 Spring,降低程序间的耦合DI(依赖注入,Dependency Injection):在当前类需要用到其他类的对象时,由 Spring 负责注入,我们只需要在配置文件中说明依赖关系IOC 负责创建对象,DI 负责维护对象之间的依赖关系。两者是同一件事的两个角度,不是两个独立的功能。说明优势获取 bean 时注入数据是必须的,对象一旦创建就保证数据完整弊端
事务管理解决方案总结 本文针对转账业务中多个DAO操作不在同一事务的问题,提出了一种基于ThreadLocal的事务管理方案。核心思路是将数据库连接与当前线程绑定,确保同一事务中的所有操作使用同一个Connection。 关键实现: ConnectionUtils类通过ThreadLocal实现连接与线程绑定,确保同一线程获取相同连接 TransactionManager提供事务控制方法(开启/提

本文深入解析Java并发编程基础,重点探讨线程状态与上下文切换机制。首先区分并发与并行的本质差异:并行是多个线程同时执行不同任务,而并发是多个线程竞争同一资源。文章详细剖析线程生命周期(新建、就绪、运行、等待、终止)及操作系统非公平队列调度原理,强调start()方法只是将线程提交至就绪队列而非立即执行。核心部分阐述上下文切换的概念、开销(毫秒级时间消耗)及其对性能的影响,指出多线程并非总是优于单
volatile关键字的多线程机制解析 本文深入剖析了volatile关键字在Java多线程编程中的底层机制与适用场景。文章首先通过计数器案例展示了普通变量在多线程环境下的不可靠性,随后详细解释了volatile的两大核心承诺:保证内存可见性(通过立即写回主内存和MESI缓存失效协议)和防止指令重排序(通过内存屏障)。 文章重点指出volatile的关键局限性:虽然能保证单个读/写操作的原子性和可
本文介绍了使用注解替代XML配置进行MyBatis开发的方法。通过对比XML和注解两种开发方式,详细说明了核心注解的功能及用法,包括SQL映射(@Select等)、结果集映射(@Results)和二级缓存配置(@CacheNamespace)。文章提供了完整的CRUD示例,并比较了两种方式的注册Mapper差异。最后给出了开发建议:简单CRUD推荐注解开发,复杂动态SQL建议使用XML配置。注解开
本文介绍了MyBatis的核心执行流程、动态代理机制、多表关联映射及延迟加载原理。MyBatis执行流程分为读取配置文件、生成SqlSessionFactory、创建SqlSession和操作数据库四个步骤。通过动态代理机制,MyBatis在运行时生成Mapper接口的代理对象,无需手动实现接口。在多表关联查询方面,MyBatis支持嵌套查询方式,通过association标签实现分步查询。延迟加
本文介绍了Java中synchronized关键字的三种用法及对应的锁机制。对象锁(修饰非静态方法)作用于实例对象,不同实例互不干扰;类锁(修饰静态方法)作用于Class对象,同一类的静态加锁方法互斥;代码块锁(指定任意对象)提供最灵活的加锁方式,能精确控制锁范围。特别指出代码块锁锁住对象时会完全阻止对该对象的任何访问(包括非同步方法),这与方法锁的行为不同。文章通过内存结构图和互斥规则表,清晰展

本文摘要: synchronized是Java实现线程安全的核心机制,其本质是通过"写后读"(Write-Before-Read)思想确保并发准确性。文章首先指出volatile的局限性:无法保证复合操作的原子性。然后深入剖析synchronized的工作原理:通过独占锁机制,确保一个线程完成读写操作后,其他线程才能访问共享数据。文章特别强调常见的错误用法:将读写操作拆分到不同同步方法中,导致锁保

JdbcTemplate 是 Spring 框架提供的一个对象,是对原生 JDBC 的简单封装。Spring 框架为我们提供了很多操作模板类:JdbcTemplate 的主要作用:与数据库交互,实现数据表的 CRUD 操作。它的核心代码在包中,同时还需要引入 (事务相关包)。2.2 创建实体类2.3 最基础的使用方式直接使用时,需要手动配置数据源。当我们看到有和操作时,就应该想到:可以用 Spri







