随笔分类 -  JAVA

摘要:如果没写单元测试,如若在branch中对之前代码重构的话,则没有移回trunck上的勇气,有了单元测试,全部运行通过后则有信心合并。互联网公司更是需要重视单元测试,因为版本迭代比较迅速。因此一个好的单元测试框架及一个好的项目质量管理非常重要。本文即是我对这些的心得体会。 阅读全文
posted @ 2015-09-01 17:08 王安琪 阅读(1893) 评论(8) 推荐(2) 编辑
摘要:若是有其他代码需要此Spring属性配置,将Spring配置中的属性值设置迁移到外部的属性文件中,是必需的操作,这也可以使Spring配置文件更易读。在这里我们不仅要讨论Spring的外部化配置,还要深入探讨配置化文件(即.properties)的普遍应用方式。这样就可以在不用重新打包和重新部署应用的情况下,配置这些属性值。从开发过程来看,将通用变量提出,并可配,也是写出高可读、低耦合代码的必然途径。从结果来看,这对于灵活性地进行测试、运维工作,是非常有好处的。 阅读全文
posted @ 2015-08-11 20:44 王安琪 阅读(6871) 评论(1) 推荐(1) 编辑
摘要:多线程任务处理对提高性能很有帮助,在Java中提供的线程池也方便了对多线程任务的实现。使用它很简单,而如果进行了不正确的使用,那么代码将陷入一团乱麻。因此如何正确地使用它,如以下分享,这个技能你get到没? 阅读全文
posted @ 2015-07-24 15:52 王安琪 阅读(1694) 评论(3) 推荐(2) 编辑
摘要:Spring Security与Oauth2整合步骤中详细描述了使用过程,但它对于入门者有些重量级,比如将用户信息、ClientDetails、token存入数据库而非内存。配置过程比较复杂,经过几天时间试验终于成功,下面我将具体的使用Spring Security Oauth2完成password认证的过程记录下来与大家分享。 阅读全文
posted @ 2015-07-07 09:29 王安琪 阅读(21486) 评论(13) 推荐(1) 编辑
摘要:在中文搜索中的标点、符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程序员来说是个噩梦。然而在中文分词工具mmseg中,它的中文分词是将标点与符号均去除的,它认为对于中文来讲标点符号无意义,这明显不能满足我们的需求。那么怎样改造它让它符合我们的要求呢?本文就是针对这一问题的详细解决办法,我们改mmseg的源代码。 阅读全文
posted @ 2015-05-14 00:00 王安琪 阅读(3786) 评论(0) 推荐(4) 编辑
摘要:转自http://topcat.iteye.com/blog/1293650问题lucene使用排序时会将被排序字段全部加入内存再进行排序,当多次使用不同字段进行排序时会造成OOM问题解决方案修改lucene源码在每次查询完成后将排序所使用的FieldCache里的缓存清空分别需要修改两个工程luc... 阅读全文
posted @ 2015-05-07 16:49 王安琪 阅读(682) 评论(0) 推荐(0) 编辑
摘要:如何从HBase中的海量数据中,以很快的速度的获取大批量数据,这一议题已经在《HBase 高性能获取数据》(http://www.cnblogs.com/wgp13x/p/4245182.html)一文中给出了解决办法。那么,如何向HBase中高性能的插入数据呢?经研究表明,光是批量写入也还是不行。网上没有现成的方法。本文针对这一问题,给出了一个解决方案。它采用了多线程按批“多粮仓”的方式,经过验证,能较好的达到高速度的效果。 阅读全文
posted @ 2015-03-06 23:05 王安琪 阅读(3878) 评论(0) 推荐(2) 编辑
摘要:在系统集成开发过程中,存在着各式的传输途径,其中串口经常因其安全性高获得了数据安全传输的重用,通过串口传输可以从硬件上保证数据传输的单向性,这是其它介质所不具备的物理条件。下面我就串口java开发的过程分享一下,并分享一个SerialPortHandler串口开发帮助类,以提高串口开发效率。兰州牛肉拉面是极好的,兰州手抓羊肉还是很鲜嫩的,甘肃的鸡汤面味道杠杠。 阅读全文
posted @ 2015-02-12 22:14 王安琪 阅读(1941) 评论(5) 推荐(3) 编辑
摘要:在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题。下面首先简单介绍了搜索引擎的性能,然后详细说明了HBase与MySQL的性能对比,这里的数据都是经过实际的测试获得的。最后,给出了采用多线程批量从HBase中取数据的方案,此方案经过测试要比通过自定义Filter的方式性能高出很多。 阅读全文
posted @ 2015-01-23 22:33 王安琪 阅读(28582) 评论(5) 推荐(3) 编辑
摘要:大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”。使用现有的Filter性能差劲,网上也没有现成的解决方案,我在这里把这个问题的自定义Filter的解决办法分享给大家,抛砖引玉一下。 阅读全文
posted @ 2014-12-31 20:14 王安琪 阅读(12135) 评论(1) 推荐(2) 编辑
摘要:各式结构化数据的动态接入存储查询,这一需求相信有很多人都遇到过,随着实现技术路线选择的不同,遇到的问题出入大了,其解决办法也是大相径庭。数据存储在哪儿,是关系型数据库,还是NoSQL数据库,是MySQL还是Oracle,怎么建立索引,建立什么类型的索引,都是大学问。下面,我要把我对这一解决办法的思考总结一下,有成熟的也有不成熟的,希望大家一起共同探讨。 阅读全文
posted @ 2014-10-17 20:18 王安琪 阅读(1133) 评论(0) 推荐(1) 编辑
摘要:各式结构化数据的动态接入存储查询,这一需求相信有很多人都遇到过,随着实现技术路线选择的不同,遇到的问题出入大了,其解决办法也是大相径庭。数据存储在哪儿,是关系型数据库,还是NoSQL数据库,是MySQL还是Oracle,怎么建立索引,建立什么类型的索引,都是大学问。下面,我要把我对这一解决办法的思考总结一下,有成熟的也有不成熟的,希望大家一起共同探讨。 阅读全文
posted @ 2014-10-11 18:37 王安琪 阅读(2136) 评论(5) 推荐(1) 编辑
摘要:将XML文档与JAVA对象互转是很常见的需求,如果XML定义很规整这很好实现。然而在现实中“不规矩”的XML可能更常见,Marshaller便无能为力了吗?下面是一个小技巧,调整一下思维便能重用Marshaller了,征服它们使工作更简单。 阅读全文
posted @ 2014-09-26 17:45 王安琪 阅读(11659) 评论(1) 推荐(2) 编辑
摘要:HBase可以通过协处理器Coprocessor的方式向Solr发出请求,Solr对于接收到的数据可以做相关的同步:增、删、改索引的操作,这样就可以同时使用HBase存储量大和Solr检索性能高的优点了,更何况HBase和Solr都可以集群。这对海量数据存储、检索提供了一种方式,将存储与索引放在不同的机器上,是大数据架构的必须品。 阅读全文
posted @ 2014-08-21 20:13 王安琪 阅读(5268) 评论(8) 推荐(3) 编辑
摘要:Hessian经常作为服务内部RPC远程过程调用工具工具来使用,速度快效率高。重构代码的核心思想就是把共用的代码段提出来,使代码结构优化;架构设计类似,把基本的共用的服务提出来,使架构优化。下面讲述一下我在具体应用中使用Spring3.2.4在Tomcat7.0.47下发布Hessian4.0.37服务的过程。 阅读全文
posted @ 2014-08-15 19:12 王安琪 阅读(2864) 评论(1) 推荐(3) 编辑
摘要:项目中对关系型数据库的接入再寻常不过,也有海量的ORM工具可供选择,一个一般性的DAL数据接入层的结构却大同小异,这里就分享一下使用Hibernate、Spring、Hessian这三大工具对DAL层的具体实现方法,也是对之前使用的一个总结。 阅读全文
posted @ 2014-08-08 20:06 王安琪 阅读(4257) 评论(7) 推荐(1) 编辑
摘要:在coding中经常会用到定时器,指定每隔1个小时,或是每天凌晨2点执行一段代码段,若是使用java.util.Timer来做这种事情,未免重复造轮子。幸亏Spring中封装有定时器,而且非常好用,采用注解的形式配置某时某刻执行一段代码段。在之前的项目中使用过一次,下面就把代码、配置一并分享与大家。 阅读全文
posted @ 2014-08-01 18:48 王安琪 阅读(3560) 评论(1) 推荐(2) 编辑
摘要:Java EE 7 去年刚刚发布了JSR356规范,使得WebSocket的Java API得到了统一,Tomcat从7.0.47开始支持JSR356,这样一来写WebSocket的时候,所用的代码都是可以一样的。今天终于体验了一把Tomcat发布的WebSocket,用着很爽,下面把这一历程分享给大家。 阅读全文
posted @ 2014-06-27 18:52 王安琪 阅读(17945) 评论(4) 推荐(6) 编辑
摘要:我们在项目里经常要涉及到各模块间的通信,这其中又不可避免要碰到各类语言间之间的通信,比如之前做的一个项目里面就是Java发的消息需要C#接收,都是面向对象的语言,而面向对象的消息怎么反解析到C#是个难题。下面就是使用Json密器让Java和C#沟通的具体办法的总结。 阅读全文
posted @ 2014-06-06 19:29 王安琪 阅读(6294) 评论(4) 推荐(3) 编辑
摘要:之前做的一个项目有这么个要求,在日志管理系统里,需要将某些日志信息存储到数据库里,供用户、管理员查看分析。因此我就花了点时间搞了一下这一功能,各位请看。摘要:我们知道log4j能提供强大的可配置的记日志功能,有写文件的、打印到控制台的等等,但有时我们需要它把日志输出到后台数据库中,log4j的强大的... 阅读全文
posted @ 2014-06-04 21:32 王安琪 阅读(13218) 评论(1) 推荐(1) 编辑