Decorative image frame

Fun90

物有本末,事有终始。知所先后,则近道矣。

Fun90

FastDFS资料整理

需求至上,最近的,尽心费神,搭建图片服务器,研究了下分布式存储,最后选用了轻量级的fastdfs,刚接触使用难免会踩坑,整理些互联网上的资料都是大牛们的走过的路,这些资料能尽量避免少踩坑。

介绍

最先看的是由FastDFS的作者happyfish100发表的分布式文件系统FastDFS架构剖析

原理篇

大型网站图片服务器架构的演进

分布式文件系统FastDFS原理介绍

阅读全文...

Java后台验证组件

在项目中前端和后端的验证都必不可少,公司使用的框架是基于Spring MVC开发,但未对验证做相应的解决方案,在网上找到了Validation.FO的验证框架,顿时被其简洁的设计所吸引,经过对其自定义的拓展开发,集成到了项目中。

Validation.FO 框架说明

  1. 这是一个验证框架,并且是一个 独立的验证框架 ,不依赖与其他已有的框架;
  2. 可以自由的嵌入到其他框架,比如Spring、Struts等流行框架,但实质来说他是独立的,所以无所谓嵌入到哪里,如果需要在GUI桌面应用中,也是完美的;
  3. 配置简单,可自由扩展验证器,实际只要实现IValidator接口,以及在rules.fo.xml中添加相关的配置即可;
  4. 支持Spring接口
  5. 使用过程中,你会感觉好像只用了 IValidateService.validate() 一个方法,这会让人感觉良好

    阅读全文...

Java位运算总结

二进制

要明白位运算必须搞清楚二进制,下面是十进制转二进制的方法。

  1. 正数详见“听风吹雨”的博客,这篇文章已经讲得非常完整和详细。

  2. 负数

    第一步:将正数部分按上述方法转为二进制,比如-5,取5=0000 0000 0000 0000 0000 0000 0000 0101

    第二步:取反1111 1111 1111 1111 1111 1111 1111 1010

    第三步:补码(即加1)得1111 1111 1111 1111 1111 1111 1111 1011

位运算

Java提供的二元位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。

名称 运算符 分类 口诀
左移 << 二元操作符 正数高位补0,负数高位补1
右移 >> 二元操作符 低位补0
无符号右移 >>> 二元操作符 高位补0
位与 & 二元操作符 同1为1,否则为0
位或 | 二元操作符 有1为1,否则为0
位非 ~ 一元操作符 取反
位异或 ^ 二元操作符 不同为1,否则为0

详细例子与介绍,这也有一篇CSDN博客

Spring MVC接收List集合和数组参数

Spring MVC在接收集合请求参数时,需要根据参数情况对Controller和前端JS代码做相应的调整。在接收基本类型的List或数组时,只需使用@RequestParam指定对应名称即可完成转换。但是在接收对象实体类型的List时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。

阅读全文...