首页
个人开发
工作相关
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1828
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
Gradio Web UI 界面
最新文章
2025-12-9
Java垃圾回收机制基础概念与手动触发
Java垃圾回收(GC)是JVM自动管理内存的机制,主要功能:自动回收不再使用的对象占用的内存通过System.gc()建议JVM执行垃圾回收(不保证立即执行)使用可达性分析算法判断对象是否存活
2025年-12月-9日
19 阅读
0 评论
垃圾回收机制
2025-12-9
Spring框架中如何实现跨多个数据库的分布式事务一致性?
在Spring中实现跨数据库分布式事务的核心方案:使用JTA事务管理器(如Atomikos或Bitronix)替代默认的DataSourceTransactionManager通过@Transactional注解配合@JtaTransactionManager实现声明式事务配置XA兼容数据源确保两阶段提交(2PC)协议支持关键配置步骤:引入JTA依赖(如spring-boot-starter-jta-atomikos)定义多个XA DataSource和JTA事务管理器使用@Transactional标注跨库操作方法替代方案:Saga模式(补偿事务)避免2PC性能损耗
2025年-12月-9日
18 阅读
0 评论
Spring框架
2025-12-9
MyBatis 多租户架构下动态数据源切换与 SQL 改写实践
实现多租户架构需要解决两个核心问题:动态数据源路由:根据租户上下文自动切换数据源SQL 自动改写:在运行时动态添加租户隔离条件解决方案:使用 AbstractRoutingDataSource 实现动态数据源路由通过 MyBatis 插件拦截 SQL 并重写语句利用 JSqlParser 解析和修改 SQL 语法树结合 ThreadLocal 管理租户上下文
2025年-12月-9日
35 阅读
0 评论
MyBatis
2025-12-9
设计高并发任务调度器:支持优先级与超时控制
实现要点:使用PriorityBlockingQueue实现优先级任务队列自定义ThreadPoolExecutor并重写beforeExecute/afterExecute通过Future.get(timeout)实现任务超时控制采用ThreadFactory定制线程命名和守护属性使用RejectedExecutionHandler处理拒绝策略
2025年-12月-9日
18 阅读
0 评论
多线程与线程池
2025-12-9
实现一个泛型方法检查元素是否在数组中
实现步骤:定义泛型方法:<T> boolean contains(T[] array, T element)使用for-each循环遍历数组用equals()方法比较元素注意空值安全处理示例代码:public static <T> boolean contains(T[] array, T element) { if (array == null) return false; for (T item : array) { if (element == null ? item == null : element.equals(item)) return true; } return false; }
2025年-12月-9日
19 阅读
0 评论
泛型
2025-12-9
Java中try-catch-finally的基本使用
在Java异常处理中:try块用于包裹可能抛出异常的代码catch块捕获并处理特定类型的异常finally块无论是否发生异常都会执行,常用于资源清理多个catch块时需按子类到父类顺序排列
2025年-12月-9日
19 阅读
0 评论
异常处理
2025-12-9
如何实现基于数据库的动态URL权限控制?
实现动态URL权限控制的核心步骤:创建FilterInvocationSecurityMetadataSource从数据库加载权限规则实现AccessDecisionManager自定义决策逻辑配置ExpressionBasedFilterInvocationSecurityMetadataSource关联动态数据源使用@PreAuthorize注解配合方法级安全关键接口:SecurityMetadataSource - 加载资源权限规则AccessDecisionVoter - 投票器进行权限校验AccessDecisionManager - 决策管理器汇总投票结果
2025年-12月-9日
15 阅读
0 评论
Spring Security
2025-12-9
设计自定义类加载器解决多版本依赖冲突
解决多版本依赖冲突的核心方案:创建独立的自定义类加载器继承ClassLoader重写findClass()方法实现自定义加载逻辑打破双亲委派机制:重写loadClass()实现优先加载特定路径使用类加载器隔离技术:不同模块使用独立类加载器通过Class.forName()显式指定类加载器加载接口
2025年-12月-9日
25 阅读
0 评论
类加载机制
2025-12-9
MyBatis中#{}和${}的区别是什么?
在MyBatis中,#{}和${}都是参数占位符,但有以下核心区别:#{}:使用预编译处理,能防止SQL注入,会自动添加引号处理字符串${}:直接拼接SQL字符串,有SQL注入风险,需手动处理引号使用场景:#{}适用于值传递(如WHERE条件),${}适用于动态表名/列名
2025年-12月-9日
30 阅读
0 评论
MyBatis
2025-12-9
诊断和优化高并发场景下的Java应用长时间GC停顿问题
解决高并发场景下的长时间GC停顿需要综合策略:诊断工具:使用GC日志、JFR、堆转储分析确定停顿原因收集器选择:优先选用G1或ZGC等低延迟收集器内存优化:合理设置堆大小、调整分代比例、避免内存泄漏并发控制:优化对象创建模式,减少竞争参数调优:精细调整GC线程、停顿时间目标等关键参数
2025年-12月-9日
17 阅读
0 评论
Java性能调优
152
153
154
155
156