posts - 156,  comments - 601,  trackbacks - 0
  2011年8月31日
     摘要: 1. Springboot config示例与原理介绍1.1 Springboot config示例Springboot给我们提供了非常便捷与方便的配置使用方式,常用的使用示例有以下两种:1)使用@ConfigurationProperties 读取多个属性使用方法:@ConfigurationProperties(prefix = "spring.datasource")使用说明:提供...  阅读全文
posted @ 2021-04-08 20:00 x.matthew 阅读(490) | 评论 (0)编辑 收藏
     摘要: jprotobuf-rpc-http 是应用jprotobuf类库实现基于http协议的RPC开发组件。 目前1.0提供可以直接把Google protobuf的IDL定义语言发布成RPC服务,客户端也可以直接应用IDL定义语言进行动态创建,帮助开发完全省去了手工编译protobuf IDL语言的麻烦。  阅读全文
posted @ 2014-10-10 15:20 x.matthew 阅读(3504) | 评论 (0)编辑 收藏
     摘要: JProtobuf官方网址:https://github.com/jhunters/jprotobuf
1.0.0 支持普通类型,嵌套对象以及对象数组的Protobuf协议的序列化与反序列化实现。(注解替换proto描述文件)
1.0.1 由注解对象动态生成Protobuf的IDL描述文件内容。
1.0.3 增加由.proto 描述文件动态生成Protobuf操作对象的支持,详见下面使用说明。  阅读全文
posted @ 2014-09-30 11:43 x.matthew 阅读(4853) | 评论 (4)编辑 收藏
     摘要: 如果大家有遇到过Java内存泄露问题,而且亲自动手去定位和分析经历的同学来讲,获取Java的堆内信息对了内存使用情况的问题分析和定位是非常有帮助了。例如我们常用的MAT工具,可以较方便的让我们定位程序中内存的使用情况,是哪块导致了内存的泄露等。
但由于传统的分析过程比较麻烦,需要使用Jdk的jmap(Java Memory Map)命令把heap内存dump到一个文件,然后用MAT进行分析。所以本文介绍一种方法可以实现在线查看heap内存的使用情况,并附上源码实现,希望对大家有帮助。由于目前调研中只找到了Sun JDK6以及以上版本的实现,所以目前该方案只支持Sun JDK6或以上。如果其他同学有其它版本的JDK实现分享,欢迎一起交流。  阅读全文
posted @ 2013-02-20 16:30 x.matthew 阅读(6272) | 评论 (9)编辑 收藏
     摘要: CyclicBarrier一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。假如在涉及一组固定大小的线程的程序应用中,要求这些线程必须不时地互相等待(保证所有线程都执行完毕才返回),那么选择 CyclicBarrier 就会让这个实现变得非常容易。CyclicBarrier 在释放等待线程后可以重用,所以又称它为循环 的 barrier。  阅读全文
posted @ 2012-06-28 13:34 x.matthew 阅读(2726) | 评论 (1)编辑 收藏
     摘要: 本文通过对Apache Commons Collections 项目中LRUMap这个集合类的源代码进行详细解读,为帮助大家更好的了解这个集合类的实现原理以及使用如何该集合类。
首先介绍一下LRU算法. LRU是由Least Recently Used的首字母组成,表示最近最少使用的含义,一般使用在对象淘汰算法上。也是比较常见的一种淘汰算法。  阅读全文
posted @ 2012-06-28 13:34 x.matthew 阅读(5779) | 评论 (1)编辑 收藏
     摘要: Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap记录一个额外的数据,就是优先级。Treap在以关键码构成二叉搜索树的同时,还按优先级来满足堆的性质(在这里我们假设节点的优先级大于该节点的孩子的优先级)。但是这里要注意的是Treap和二叉堆有一点不同,就是二叉堆必须是完全二叉树,而Treap可以并不一定是。  阅读全文
posted @ 2012-05-16 14:37 x.matthew 阅读(4236) | 评论 (0)编辑 收藏
     摘要: 对于Mybatis 拥有的Lazy Load(有中文翻译成延迟加载)功能,应该很同学都有听说过,今天主要与大家一起来解读一下Mybatis在Lazy Load功能的实现的代码。Lazy Load实现的功能很好理解,就是在数据与对象进行Mapping操作时,只有当真正使用该对象时,才进行Mapping操作,以减少不必要的数据库查询开销,从而提升了程序的效率。  阅读全文
posted @ 2011-12-29 19:14 x.matthew 阅读(4995) | 评论 (1)编辑 收藏
     摘要: Thrift出自Facebook用于后台各个服务间的通讯,Thrift的设计强调统一的编程接口的多语言通讯框架.
本文通过一个实例来介绍一下Thrift最基本的应用。  阅读全文
posted @ 2011-11-12 18:57 x.matthew 阅读(17869) | 评论 (4)编辑 收藏
     摘要: JDK Proxy AOP实现与Cglib Proxy AOP实现对比。  阅读全文
posted @ 2011-10-10 19:24 x.matthew 阅读(5005) | 评论 (1)编辑 收藏
     摘要: 在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,但由于官方文档对这块的使用,描述的比较简短,细节上也被忽略掉了(可能是开源项目文档一贯的问题吧),也使用不少同学在使用中遇到了问题。特别是foreach这个函数中,collection属性做什么用,有什么注意事项。由于文档不全,这块只能通过源代码剖析的方式来分析一下各个属性的相关要求。  阅读全文
posted @ 2011-08-31 14:38 x.matthew 阅读(50527) | 评论 (4)编辑 收藏