关闭代码块移动
Mac 开启了三指拖拽,发现在IDEA的某些Project中,选中代码块时,老是拖动代码。解决办法:
1 | Editor –> General -> Enable Drag’n’Drop functionality in Editor |
关闭即可。
Mac 开启了三指拖拽,发现在IDEA的某些Project中,选中代码块时,老是拖动代码。解决办法:
1 | Editor –> General -> Enable Drag’n’Drop functionality in Editor |
关闭即可。
利用mybatis标签替换硬编码
在项目中偶尔看到这样的代码:
1 | <sql id="querySqlString"> |
这段代码中有个1=1
很扎眼,这个不是bug,也没有什么性能问题,只是程序员世代传承下来的一个习惯。
command+R
进入恢复界面csrutil disable
reboot
sudo mount -uw /
SaaS项目东郭反应,项目中发的事务消息一直在RMQ_SYS_TRANS_HALF_TOPIC
中,并且不断增长。随即我们查看RocketMQ日志发现如下情况:
这个本来是RocketMQ正常的逻辑,发送事务消息后没有提交状态的话,当达到超时时间后,RocketMQ会回查本地事务状态。这里显示的是回查的次数超限,消息被移到了TRANS_CHECK_MAXTIME_TOPIC
中。
不正常的是REAL_TOPIC
变成了RMQ_SYS_TRANS_HALF_TOPIC
,正常应该是原始的业务消息TOPIC才对。于是我们带着这个问题开始排查起来。
读取Jar中文件使用类似getResourceAsStream等以流的方式获取即可。但是想要读取Jar中某个目录下的所有文件却不是那么容易。
由于tk.mybatis依赖了persistence-api,会让Activiti装配JpaProcessEngineAutoConfiguration,因为其@conditonalOnclass(name = “javax.persistence.EntityManagerFactory”)。
但实际没有使用JPA,导致启动报错。如果排除persistence-api,又会导致tk.mybatis报错。
参考了一番其它的人做法,无论是各种排除还是添加依赖都无效。
最终自己的解决方案是:
首先排除activiti jpa的自动装配:
1 | @SpringBootApplication(exclude={JpaProcessEngineAutoConfiguration.class})。 |
然后找到activiti中的DataSourceProcessEngineAutoConfiguration.class
复制出源码,在自己的项目中添加一个同名文件(不同名也行)。然后粘贴内容到新建的文件中。最后删掉:
1 | @ConditionalOnMissionClass(name = "javax.persistence.EntityManagerFactory") |
Ok,搞定!
被隔离的第7天,每天接到无数个部门的电话,量体温,报情况。
更换电脑后重新拉下hexo相关sources,安装完成hexo-cli以及hexo-deployer-git和其他node_modules。
执行hexo clean && hexo g
然后执行hexo d。
本文转载至github:https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/8-PriorityQueue.md
前面以Java ArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列叫做PriorityQueue,即优先队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素,C++的优先队列每次取最大元素)。这里牵涉到了大小关系,元素大小的评判可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator,类似于C++的仿函数)。