使用Dubbo开发过程中,经常会遇到forbid consumer whitelist/blacklist的错误.
日志提示当前调用者被禁止访问某个服务,请检查下注册中心访问列表,还有黑名单和白名单。
实际情况是我并根本没有对服务做白名单和黑名单机制.
Dubbo异常:forbid consumer
Oracle的命名规则与双引号
Oracle被大众所知的是对大小写不敏感,当你使用小写SQL语句创建表,表名和字段都会变成大写,在查询或更新表时无论你是小写还是大写表名和字段名都能正确执行。但是,在加入双引号之后情况就有所变化了。
FastDFS资料整理
需求至上,最近的,尽心费神,搭建图片服务器,研究了下分布式存储,最后选用了轻量级的fastdfs,刚接触使用难免会踩坑,整理些互联网上的资料都是大牛们的走过的路,这些资料能尽量避免少踩坑。
介绍
最先看的是由FastDFS的作者happyfish100发表的分布式文件系统FastDFS架构剖析
原理篇
Java后台验证组件
在项目中前端和后端的验证都必不可少,公司使用的框架是基于Spring MVC开发,但未对验证做相应的解决方案,在网上找到了Validation.FO的验证框架,顿时被其简洁的设计所吸引,经过对其自定义的拓展开发,集成到了项目中。
Validation.FO 框架说明
- 这是一个验证框架,并且是一个 独立的验证框架 ,不依赖与其他已有的框架;
- 可以自由的嵌入到其他框架,比如Spring、Struts等流行框架,但实质来说他是独立的,所以无所谓嵌入到哪里,如果需要在GUI桌面应用中,也是完美的;
- 配置简单,可自由扩展验证器,实际只要实现IValidator接口,以及在rules.fo.xml中添加相关的配置即可;
- 支持Spring接口
- 使用过程中,你会感觉好像只用了 IValidateService.validate() 一个方法,这会让人感觉良好
Java位运算总结
二进制
要明白位运算必须搞清楚二进制,下面是十进制转二进制的方法。
正数详见“听风吹雨”的博客,这篇文章已经讲得非常完整和详细。
负数
第一步:将正数部分按上述方法转为二进制,比如-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数据再解析成相应的集合。