`
flychao88
  • 浏览: 744118 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

Spring Url映射

普通URL路径映射 @RequestMapping(value={"/test1", "/user/create"}):多个URL路径可以映射到同一个处理器的功能处理方法。 URI模板模式映射 @RequestMapping(value="/users/{userId}"):{×××}占位符, 请求的URL可以是 “/users/123456”或 “/users/abcd”,通过6.6.5讲的通过@PathVariable可以提取URI模板模式中的{×××}中的×××变量。 @RequestMapping(value ...
生活不是一帆风顺的,谁都会有坎坷的时候,在遇到挫折和失败的时候,有勇气去面对和承受,总结经验教训试图扭转局面。能够承受失败的男人才是真正的男人,相信每个好男人都具有同样的勇气。
之前使用过MINA框架,感觉效率非常好,使用长连接可以支持10万次以上的并发。 今天尝试使用了Netty框架,感觉使用上也非常方便,具体效率问题,在接下来的博客会详细解读: NioServerSocketChannelFactory创建服务端的ServerSocketChannel,采用多线程执行非阻塞IO,和Mina的设计 模式一样,都采用了Reactor模式。其中bossExecutor、workerExecutor是两个线程池,bossExecutor用来接收客户端连接,workerExecutor用来执行非阻塞的IO操作,主要是read,write。 package net ...
Oracle 中字段属性: -- 说明: -- ORACLE的数据类型 -- ORACLE的数据类型 -- 常用的数据库字段类型如下: -- 字段类型 中文说明 限制条件 其它说明 -- CHAR 固定长度字符串 最大长度2000 bytes -- VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 -- NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes -- NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes -- DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试 ...
        一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。         一致性Hash算法将 value 映射到一个 32 为的 key 值,也即是 0~2^32-1 次方的数值空间;我们可以将这个空间想象成一个首( 0 )尾( 2^32-1 )相接的圆环。 如下图所示: package h ...
为了解决XSS(跨站脚本攻击)的问题,IE6开始支持cookie的HttpOnly属性,这个属性目前已被大多数浏览器(IE、FF、Chrome、Safari) 所支持。当cookie中的HttpOnly属性被设置为true时,前端脚本就无法访问或操作cookie了(只能通过后台访问),这样XSS就失效了。 在PHP中,cookie的HttpOnly有两种设置方式。     方法一: header("Set-Cookie:tmp=100;HttpOnly"); 方法二: setcookie("tmp", 100, NULL, NULL, ...
public class Sender { private final static String QUEUE_NAME = "hello"; public static void main(String[] args) throws IOException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newCon ...
在什么情况下使用缓存呢?   1、经常变化的数据,但是不需要立刻进行持久化的。   2、经常被大量的读取,很少进行更新操作的。   3、大量的数据库IO操作。   4、一些通用的页面,例如JS、CSS、图片等。   5、统计和计算需要暂存的信息,需要加快计算的。

利用JAVA操作Redis

import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import javax.sound.midi.Soundbank; import java.util.*; /** * @author: flychao88 * Time: 2012.5.7 ...

NOSQL的总结感想

NoSQL主要用于解决以下几种问题 少量数据存储,高速读写访问。此类产品通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。 这方面最具代表性的是dynamo和bigtable 2篇论文所阐述的思路。前者是一个完全无中心的设计,节点之间通过gossip方式传递集群信息,数据保证最终一致性,后者是一个中心化的方案设计,通过类似一个分布式锁服务来保证强一致性,数据写入先写内存和redo log,然后定期compat归并到磁盘上,将随机写优化为顺序写,提高写 ...
我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用。 之前我一直习惯自己维护一个list保存submit的callable task所返回的Future对象。 在主线程中遍历这个list并调用Future的get()方法取到Task的返回值。   但是,我在很多地方会看到一些代码通过CompletionService包装ExecutorService,然后调用其take()方法去取Future对象。以前没研究过这两者之间的区别。 今天看了源代码之后就明白了。 ...
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。使用建议:在两个或者更多的线程访问的成员变量上使用vol ...
eBay的分布式数据访问实践            由祝文兵讲解的《eBay的分布式数据访问实践》实际上就是一个数据访问中间层与之前曹政讲的《分布式数据库及反范式设计》有相似之处,下面我将大会上的简要内容加上我个人的一 ...
字节序,顾名思义就是字节存放的顺序 字节序分为两种: BIG-ENDIAN----大字节序 LITTLE-ENDIAN----小字节序 BIG-ENDIAN、LITTLE-ENDIAN与多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响。 BIG-ENDIAN就是最低地址存放最高有效字节。 LITTLE-ENDIAN是最低地址存放最低有效字节。即常说的低位在先,高位在后。  Java中int类型占4个字节,一定要是“多字节类型的数据”才有字节序问题,汉字编码也有这个问题。请看下面4字节的例子:   比如 int a = 0x ...
  项目经理,从以前一个令人羡慕的职位到现在的烂街,各行各业,各色人等,我们都可以看到项目经理的身影。盖房子搞建筑的,总包分包,大大小小的项目经理无数;新房装修,也是项目经理带着几个小弟出来混的,软件 ...
Global site tag (gtag.js) - Google Analytics