自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 wrk -- 小巧轻盈的 http 性能测试工具.

测试先行是软件系统质量保证的有效手段. 在单元测试方面, 我们有非常成熟的 xUnit 方案. 在集成测试方面, 我们 selenium 等自动化方案. 在性能测试方面也有很多成熟的工具, 比如 LoadRunner, Jmeter 等. 但是很多工具都是给专门的性能测试人员使用的, 功能虽然强大, 但是安装和操作不太方便. 作为开发人员, 我们有些时候想快速验证我们的解决方案是不是存在性能问题,...

2015-06-21 00:55:36 507

原创 react.js的的diff算法真的很强大

场景是这样的:我们项目里有一个比较复杂的表格20多列每一列里也不是简单把值展示出来,很多还有比较复杂的运算. 应用本身就是一个SPA模式的. 画面的元素很多. 目前这个表格使用Kendo UI的Grid实现的. Kendo的数据绑定是Observable模式的, 你给它一个POJO的对象数组, 它会把这个数组转换为ObservableArray, 表面上看接口跟js的原生数组一样. 但是每...

2015-04-29 11:32:57 530

异步Servlet在什么样的场景下能发挥作用?

从 Servlet 3.0开始, 异步Servlet成为了标准, 在此之前类似jetty这样的web服务器都已经有了自己的实现. 从2011年3月份 Servlet 3.0 的最终规范出来到现在4年已经过去了, 似乎在实际项目上看到的用异步方式处理HTTP请求的例子并不多. 我想不是因为异步Servlet太复杂, 也不是因为异步Servlet的实现不稳定, 而是多数情况下人们找不到应用他的场景. ...

2015-04-13 18:25:35 743

Spring Boot中使用 MongoDB 3.0

mongodb 3.0出来了, 有多了很多新特性. 不过这不是我要说的.如果要在Java应用程序里用mongodb 3.0你得用3.0的Java驱动程序. 旧的是不行的.然而很多Java的库还没有跟上脚步, 用的是2.6的驱动程序. Spring Boot就是其中之一.我相信过不了多久, Spring Boot就会升级支持3.0. 那么现在如果想要用mongodb 3.0怎办呢?...

2015-04-02 17:35:01 799

Spring Boot项目中自动reload模板文件

最近在研究Spring Boot, 这东西挺好的, 一切都从一个main方法开始, 把很多东西都集成在里面了.下面是我研究时写的一些代码. [url]https://github.com/zjumty/spring-boot-demo[/url]有兴趣的可以从上面的代码开始创建项目, 比直接从头自己写快一些.集成了MyBatis, jetty, freemarker....

2015-03-31 17:52:51 382

原创 oracle里面base64加解密

1. base64 的解密函数select utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw(t.claim_id))) from t_claim t2. base64 的加密函数select utl_raw.cast_to_varchar2(utl_encode.base64_encod...

2014-05-17 10:26:38 416

原创 利用jsdoc和idea加速javascript开发(二)

在上一篇中我们看到了[url=http://zjumty.iteye.com/blog/2053831]一些Intellij Idea对jsdoc的支持[/url], 这篇我们继续看Idea对类型表达式, 类声明, 成员函数, 模板方法的支持.[size=large]4. 类型表达式[/size]在上一篇的例子中我们看到可以用@param指定参数的类型, 用@return指定返回值...

2014-04-26 17:11:07 449

原创 利用jsdoc和idea加速javascript开发(一)

当项目里的js代码到达一定规模后, js的开发会变成一个很头痛的问题, 由于没有静态类型语言的类型支持,很少有IDE能够对js代码提供有效的代码补全,方法和参数错误检查等功能. 想要在几万行js代码弄清楚某一个变量应该是什么类型, 有什么方法, 方法的参数是什么, 返回值是什么是件很令人头痛的事情.幸好Intellij IDEA提供了对jsdoc的支持, 使我们可以更方便的编写js代码. ...

2014-04-26 11:53:47 426

原创 Oracle 删除数据库中所有的对象

[code="sql"]create or replaceFUNCTION DROP_ALL_SCHEMA_OBJECTS RETURN NUMBER ASPRAGMA AUTONOMOUS_TRANSACTION;cursor c_get_objects is select object_type,'"'||object_name||'"'||...

2014-02-21 14:40:00 542 1

自定义Spring MVC3的参数映射和返回值映射 + fastjson

[size=x-large]自定义Spring MVC3的参数映射和返回值映射 + fastjson[/size]首先说一下场景:在一些富客户端Web应用程序中我们会有比较多的Ajax调用,并且希望与服务器交互的数据需要是复杂的JSON对象。 fastjon是一个非常高效的JSON序列化和反序列化库,我希望我们输入的JSON串能通过fastjson直接反序列化为一个复杂的JavaBean对...

2013-08-21 04:14:53 236

让JPA的Query返回Map对象

[size=xx-large]让JPA的Query返回Map对象[/size]在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一个对象数组返回。 常见的用法是这样的:[code=...

2013-08-10 17:45:50 3255

weblogic 10.3.6 + jpa 2.0

如果你在使用把jpa 2.0的web应用部署到weblogic server 10.3.6时出现下面这些异常:java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode或java.lang...

2013-07-09 21:34:42 274

Groovy笔记: 对Collection进行sum操作

[size=x-large]Groovy: 对Collection进行sum操作[/size]在Groovy里, 如果要对一个Collection或数组里的元素求和,只需要调用一下sum方法既可[code="java"]def list = [1,2,3,4,5,6,7,8];println list.sum(); // Output:36println list.sum(...

2013-07-02 23:03:33 1051

Pro Java 7 NIO 2 读书笔记

[size=x-large]Pro Java 7 NIO 2 读书笔记[/size][img]http://dl2.iteye.com/upload/attachment/0086/3302/093c53a8-e0de-3e35-b794-e1abcb8c53e1.jpg[/img]花了几天把这本书初略的看了一下, 之所以初略的看了一下,是因为这书里确实没啥内容。如果去了NIO 1...

2013-06-29 14:16:45 135

Groovy: 太空船运算符

[size=x-large]Groovy: 太空船运算符[/size]Groovy在语言级别提供了很多有意思的运算符。 其中有一个叫做太空船(spaceship)运算符。 之所以叫他太空船运算符,是因为它的语法是 看上去有点像UFO。 这个运算符是Comparable接口的compareTo方法的另一个表现方式。这就是说只要你在自己的类里实现了compareTo方法,就是可以在你的代码...

2013-06-26 22:28:39 248

Groovy:switch表达式

[size=x-large]Groovy:switch表达式[/size]在Java里我们只能在switch语句中比较int或枚举类型。在Groovy中我们可以比较任何类型只要这个类型提供了isCase方法。Groovy已经为Class(利用isInstance),Object(利用equals),collections(利用contains)和正则表达式(利用matches),同样我们也...

2013-06-25 22:51:06 1170

Groovy: Groovy中的true和false

[size=x-large]Groovy中的true和false[/size]这里说Groovy的true和false其实不太准确, Groovy中的true和false两个关键字和Java一样都是boolean类型。 这里要说的是Groovy中的条件判断为真和假的情况。在Java中条件判断只能是boolean类型。在java中要宽泛的多:boolean类型的true和false:...

2013-06-24 23:10:08 1568 1

Groovy:Groovy中的字符串

[size=x-large]Groovy:Groovy中的字符串[/size]在Groovy中我们会看到单引号(')的字符串,双引号(")的字符串,斜杠(/)的字符串, 美元符号斜杠($/)的字符串。 Groovy的字符串比Java中的复杂的多,同时功能上也强大的多。[size=medium]单引号字符串[/size][code="java"]def s1 = 'Yep t...

2013-06-23 23:06:46 869

解决了中文乱码问题的emma-maven-plugin

用emma-maven-plugin在Maven里集成emma进行代码覆盖率测试时,如果用的官方的emma-maven-plugin的话,在java源码的字符编码和操作系统的默认字符编码不一致的情况下会汉字会出现乱码。这是因为emma-maven-plugin和emma做的不够完善,没有提供读取源码时指定字符编码的接口,而是始终采用系统默认编码来读取源文件。我修改了emma的原代码,加入了...

2013-06-23 00:10:21 162

用MTOM在WCF和CXF之间传数据

[size=x-large]用MTOM在WCF和CXF之间传数据[/size]MTOM是一种机制,用来以原始字节形式传输包含SOAP消息的较大二进制附件,从而使所传输的消息较小。如果不用MTOM我们也可以通过WebService传递二进制的文件, 我们先来看看不用MTOM的时候是什么样子的。[b]服务端[/b]是一个简单的WebService方法, 接受一个byte数组,计...

2013-06-22 11:23:13 170

原创 在传输层上压缩WebService的请求和响应

[size=x-large]在传输层上压缩WebService的请求和响应[/size][size=medium]场景[/size]场景是这样的:客户端.NET 3.5应用程序,WCF实现WebService调用, 服务端Java,通过CXF提供WebService。 有一个方法提供了有一个字符串类型的参数,实际生产环境里会传100k以上的字符串。在并发量比较大的情况下,带宽占用很...

2013-06-19 23:18:24 190

把纯文本字符串用Gzip压缩再转换为Base64能有多少压缩率呢?

其实具体多大压缩率要看源文件的内容,一般来说重复的单词越多,压缩率越高。下面是把/usr/share/dict/words压缩的测试程序[code="java"]import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.i...

2013-06-15 14:22:17 2436

Groovy: 把方法变成闭包

[size=x-large]Groovy: 把方法变成闭包[/size]在Groovy里闭包是个很有用的工具。例如我们可以把闭包作为方法的参数,在方法内部执行这个闭包。我们可以用Groovy的语法创建闭包,也可以通过.&运算符直接把Java或Groovy方法直接当作闭包来使用。我们有一个简单的类:[code="java"]public class JavaObject ...

2013-06-14 22:22:27 161

Groovy: 比JavaBean好用的GroovyBean - @Bindable和@Vetoable

[size=x-large]Groovy: 比JavaBean好用的GroovyBean - Bindable和Vetoable[/size]在[url=http://zjumty.iteye.com/blog/1885978]前面的文章[/url]中我们看到了GroovyBean的基本语法。除了能用少量的代码实现JavaBean的功能以外,GroovyBean还提供了JavaBean标准...

2013-06-13 22:42:10 405

Groovy: 比JavaBean好用的GroovyBean

[size=x-large]Groovy: 比JavaBean好用的GroovyBean[/size]在Java里我们经常使用JavaBean,GroovyBean用更简单的语法提供了JavaBean一样的功能。 我们在JavaBean里定义一个属性时需要自己添加get/set方法。虽然现在的大多数IDE都可以为我们自动生成这些方法,但是在属性很多的情况下还是这些方法还是会影响程序的可读性...

2013-06-12 23:22:27 184

Apache Mina - SSL配置

[url=http://zjumty.iteye.com/blog/1884465]Apache MINA文档系列[/url][size=x-large]Apache Mina - SSL配置[/size]本文中我们看一下如何为一个简单的客户端/服务器应用程序配置安全套接字(SSL)。 我们需要一下3个步骤:创建SSLContext服务器部分客户端部分[si...

2013-06-11 18:33:33 337

用keytool创建Keystore和Truststore文件

[size=x-large]用keytool创建Keystore和Trustsotre文件[/size]JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建...

2013-06-11 11:18:56 639

原创 Apache Mina 2 文档翻译 - 章节汇总

[size=x-large]Apache Mina 2 文档翻译 - 章节汇总[/size][url=http://zjumty.iteye.com/blog/1857069]第一章 - 开始[/url][url=http://zjumty.iteye.com/blog/1859838]第二章 - 基础[/url][url=http://zjumty.iteye.com/blog/18...

2013-06-09 11:45:48 135

Apache Mina 文档翻译 - 第十七章 - Spring整合

[size=x-large]第十七章 - Spring整合[/size]本章中演示了如何把MINA应用程序和Spring框架整合在一起。 文章的内容来源于http://www.ashishpaliwal.com/blog/2008/11/integrating-apache-mina-with-spring/[size=medium]应用程序的结构[/size]我们创建一个...

2013-06-08 15:49:49 108

Apache Mina 文档翻译 - 第十六章 - JMX支持

[size=x-large]第十六章 - JMX支持[/size]Java Management Extensions (JMX) 是用来管理和监视java应用程序的。在这篇文章里通过一个例子来说明如何让你的MINA应用程序可以被JMX管理。下面的程序演示了如何将JMX技术整合进MINA的应用程序,我们把JMX类整合进前面的图片服务器的例子。[size=large]添加J...

2013-06-08 11:59:32 79

Apache Mina 文档翻译 - 第十四章 - 状态机

[size=xx-large]第十四章 - 状态机[/size]如果你在用MINA开发复杂的网络应用程序,有时候需要用来状态模式来应对问题的复杂性。在自己实现状态模式之前你可以先看看mina状态机,利用这个功能可以方便的实现状态模式。[size=large]一个简单的例子[/size]我们来演示一下怎么用mina状态机实现一下简单的例子。下面这个图展示了一个标准的磁带机的状...

2013-06-07 23:41:37 109

Groovy : 可以避免NullPointerException的安全属性访问

在Groovy中实现安全的属性访问是非常简单的事情。假如我们有下面一个简单的数据模型:[code="java"]class Company { Address address String name}class Address { Street street String postalCode String city}...

2013-06-05 23:23:01 879

Groovy: Elvis运算符

Groovy里有一种操作符叫Elvis运算符,可以简化Java里的二元操作符。如果我们需要在某个值是空或false时指定一个默认值时,使用Elvis运算符会使表达式更简洁。这里的false判断遵循Groovy的Truth判定方法:把null,空字符串,空集合视为false。例如:[code="java"]def sampleText// Java里的二元运算符(Groo...

2013-06-04 22:55:54 505

Apache Mina 文档翻译 - 第十二章 - 日志Filter

第十章 - Executor Filter在MINA 1.X的版本里,你可以在Acceptor级别定义线程模型。这是Acceptor设定的一部分。但是这种做法带来了复杂性,所以MINA的开发团队决定废弃这种方式,取而代之的是个更加灵活的方式,基于Filter:ExecutorFilterExecutorFilter类这个类实现了IoFilter接口,它里面包含一个Executor,并...

2013-06-03 23:33:37 105

Groovy: 把Map作为接口的实现来使用

Groovy: 把Map作为接口的实现来使用在Groovy中要想实现一个接口,我们可以直接使用map,通过as关键字把它传递给一个方法。下面是一个简单的例子,我们通过map定义了一个java.io.FileFilter接口的实现。我们吧它传递给java.io.File.listFiles()方法。然后把所有扩展名是.css和.png的文件打印出来。map = [ // 实现File...

2013-06-02 22:42:22 228

原创 Apache Mina 文档翻译 - 第九章 - Codec过滤器

第九章 - Codec过滤器本章中会说明为什么要使用ProtocolCodecFilter和如何使用ProtocolCodecFilter。为什么使用ProtocolCodecFilter?TCP可以保证数据包按照正确的顺序投递。但是不能保证在发送端的写操作对应在接收端一定有一次读操作。具体参照:http://en.wikipedia.org/wiki/IPv4#Fragmenta...

2013-06-02 22:32:57 126

Groovy: String.multiply()

Groovy: String.multiply()在Groovy扩展的String类中有一个multiply方法非常有用,你想做一个由80个‘-’组成的字符串吗?这样就可以:'-'.multiply(80) 甚至可以更简单:'-' * 80  http://mrhaki.blogspot.com/2009/08/groovy-goodness-stringmultip...

2013-06-01 16:01:12 227

Apache Mina 文档翻译 - 第八章 - IoBuffer

第八章 - IoBufferIoBuffer是MINA应用程序中使用的字节缓冲区(ByteBuffer)IoBuffer是NIO的ByteBuffer的替代品。MINA没有直接使用NIO的ByteBuffer,因为以下原因:    ByteBuffer缺少一些有用的getter和putter方法,例如fill, get/putString,和get/putAsciiInt().    Byt...

2013-06-01 15:52:20 130

Groovy:运行期把方法mixin到对象实例

Groovy:运行期把方法mixin到对象实例从Groovy 2.1 开始我们可以在运行期把方法mixin到对象实例。这个mixin和class的mixing用法很不一样,他需要调用对象实例的metaClass属性的mixin方法。class Parrot { static String speak(String text) { /"$text" Polly...

2013-05-30 22:17:31 151

Apache Mina 文档翻译 - 第七章 - Handler

第七章 - HandlerIoHandler处理所有MINA产生的IO事件。这个接口是在过滤器链的尾端,是所有活动的集线器。IoHandler有以下方法:    sessionCreated    sessionOpened    sessionClosed    sessionIdle    exceptionCaught    messageReceived    messageSent...

2013-05-30 21:59:02 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除