摘要: 一般在稍微大一点的项目中,需要配置多个数据库数据源,最简单的方式是用 Spring 来实现,只需要继承 AbstractRoutingDataSource 类,实现 determineCurrentLookupKey 方法,再配合使用 ThreadLocal 就可以实现。 但是如何实现 MQ 的多数 阅读全文
posted @ 2017-11-23 15:11 HarrisonHao 阅读(4424) 评论(1) 推荐(0) 编辑
摘要: 有这样一个需求,当调用某个方法抛出异常,比如通过 HttpClient 调用远程接口时由于网络原因报 TimeOut 异常;或者所请求的接口返回类似于“处理中”这样的信息,需要重复去查结果时,我们希望当前方法能够在这种特定的情况下,重复执行,如果达到了我们的期望,则不重复执行。而且,我们希望能够控制 阅读全文
posted @ 2017-11-21 19:17 HarrisonHao 阅读(20385) 评论(6) 推荐(0) 编辑
摘要: 前两天面试ThoughtWorks,有一道家庭作业题,题目如下: 思路如下: 把所有的会议安排在两天内,每天分为上午和下午,上午最多三小时(180min),9点到12点,下午最多四小时(240min),1点到5点。 其实就是给定大小的4个坑,每个会议都是一个固定大小的萝卜,要把这所有的19个萝卜装到 阅读全文
posted @ 2017-03-22 11:08 HarrisonHao 阅读(10303) 评论(8) 推荐(2) 编辑
摘要: 有这样一个需求: 这里只用“商品1”、“商品2”举例,可以扩展到多个商品的需求。 涉及到的表大概如下图: 该怎么做呢?以第一点需求为例,一种可行的方法是:先查出所有包含“商品1”的订单,然后遍历这些订单,选出包含“商品2”的订单,如果要查询包含更多商品的订单,需要进行多次遍历,层层筛选,效率低下。况 阅读全文
posted @ 2016-12-29 15:45 HarrisonHao 阅读(3262) 评论(4) 推荐(3) 编辑
摘要: 中所周知,Java中的泛型并不像C++、C#一样是真正的泛型,其泛型是通过类型擦除来实现的。具体什么是类型擦除,可以参看这篇博文:http://icyfenix.iteye.com/blog/1021949。今天要记录的是在实际开发中遇到的一个,由于Java这种泛型的实现方式而导致的问题,及解决办法 阅读全文
posted @ 2016-12-06 14:44 HarrisonHao 阅读(2390) 评论(2) 推荐(1) 编辑
摘要: Java中的transient关键字是在序列化时候用的,如果用transient修饰变量,那么该变量不会被序列化。 下面的例子中创建了一个Student类,有三个成员变量:id,name,age。age字段被transient修饰,当该类被序列化的时候,age字段将不被序列化。 来创建一个用序列化的 阅读全文
posted @ 2016-11-27 16:57 HarrisonHao 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的。final可以用来修饰:变量、方法、类。 1)Java final variable final用来修饰变量时,该变量的值是不能改变的,其实就变成了常量,等同于c++中的constant关键字。来个栗子尝尝: 这 阅读全文
posted @ 2016-11-25 22:54 HarrisonHao 阅读(1911) 评论(0) 推荐(1) 编辑
摘要: Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键。 Java中的 static 关键字主要是用来做内存管理的。理解了这句话才能够比较深入地理解static。 static 可以修饰: 凡是被 static 修饰的这四种元素,都属于c 阅读全文
posted @ 2016-11-25 17:50 HarrisonHao 阅读(2747) 评论(1) 推荐(2) 编辑
摘要: 报错: 原因: hadoop目录下存在老版本jline: /hadoop-2.6.0/share/hadoop/yarn/lib: -rw-r--r-- 1 root root 87325 Mar 10 18:10 jline-0.9.94.jar 解决: cp /hive/apache-hive- 阅读全文
posted @ 2016-11-25 11:13 HarrisonHao 阅读(3123) 评论(0) 推荐(0) 编辑
摘要: 1. 首先要先确定一下是否建立了主repo的远程源: 2. 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源: 此时再执行 "git remote -v" 可以看到upstream了。 3. 如果想与主repo合并: 阅读全文
posted @ 2016-11-25 11:06 HarrisonHao 阅读(614) 评论(0) 推荐(0) 编辑