Spring Controller层测试 – 01 概述

Spring Controller层(Web层或API层)的测试有多种方案。有人倾向于使用纯单元测试,有人则倾向于使用集成测试。

单元测试和集成测试

先来看一下单元测试和集成测试的概念。

单元测试

单元测试是对软件中的最小可验证单元进行检查和验证。比如对Java中的类和方法的测试。

测试原则:

  • 尽可能保证测试用例相互独立(测试用例中不能直接调用其他类的方法,而应在测试用例
…

Java 中文字符按Unicode排序

遇到了一个对包含中文的字符串进行排序的问题。要求按unicode编码对字符串进行排序。

测试字符串数组如下:

…

理解AOP

说下我对AOP的理解:AOP是给程序添加统一功能的一种技术。在代码层面上来说,AOP就是在必要的业务代码中织入业务无关的、统一的代码的一种技术。在实现AOP的时候,通常努力争取的目标是对业务代码无侵入或是低侵入。

平时用得比较多的是Spring中的AOP实现,还有一些比如Spring中的shiro权限验证,@Cachable注解等在某种程度上也可以认为是AOP…

使用ThreadLocal

之前和同事讨论过一个日期格式化的问题,程序比较简单,大体是这样:

…

jar包中的jar

前两天在整理一个工程的时候突发奇想,能不能把需要的jar都打到一个类似于war包的jar包里面去,但是不解开原始jar包,而是将之统一放到外面jar包中的一个lib目录下。

按这个思路试了好几次,都遇到了NoClassDefFoundError。一开始以为是manifest中配置有误,在几次尝试调整manifest文件仍然失败之后,觉得有必要查看一些类似的案例…

关于Zero Copy

概述

很多web应用都会有大量的静态文件。我们通常是从硬盘读取这些静态文件,并将完全相同的文件数据写到response socket。这样的操作需要较少的CPU,但是效率有些低,它需要经过如下的过程:kernel从硬盘读取数据,越过kernel-user边界将数据传递给用户空间的web应用;用户空间的web应用再次越过kernel-user边界将完全相同的数据写…