![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 80
xionghan01
这个作者很懒,什么都没留下…
展开
-
Java Classloader基础
背景最近在引入一款开源项目投产时,在生产环境出现了一个ClassNotFoundException,仔细看完异常信息后才发现其产生于一个NullPointerException。SomeClass.getClassLoader().getParent(); // => null奇怪在于,测试环境并未出现过这个异常,生产环境却有。最后经过对比,发现两个环境启动脚本上的差异。# 存在NullPointe原创 2017-03-27 14:45:07 · 363 阅读 · 0 评论 -
Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释
一、线程5种状态新建状态(New) 新创建了一个线程对象。就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才原创 2016-10-17 17:35:10 · 50609 阅读 · 5 评论 -
Spring SQLErrorCodeSQLExceptionTranslator在Mysql/Oracle并存多数据源下的一个BUG
发现问题最近公司想把原Oracle数据库都迁移到Mysql,这个切换需要一段时间过渡,所以存在Oracle、Mysql在项目中同时使用的情况。这样就需要使用多数据源的技术。多数据源配置本身比较简单,但有一个场景出现了一点小意外。考虑如下代码: // 自己通过try-catch实现insertOrUpdate语义 Data data = new Data(); tr...原创 2018-06-11 16:21:37 · 15024 阅读 · 0 评论