自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决Httpclient 4 偶尔报错ConnectionPoolTimeoutException: Timeout waiting for connection from pool

HttpParams paramsw = new BasicHttpParams();HttpConnectionParams.setStaleCheckingEnabled(paramsw, false);HttpConnectionParams.setConnectionTimeout(paramsw, CONNECTION_TIMEOUT);HttpConnectionParams.s

2013-09-27 14:17:12 13761

原创 Linux Shell 笔记

快捷键一、自动补齐:[Tab]二、查找命令:[Ctrl+r]三、取消本次命令输入:[Ctrl+c]四、光标跳转快捷键:[Ctrl+a]跳转至命令首[Ctrl+e]跳转至命令尾五、编辑命令的快捷键:[Ctrl+w]向后删除一个字,用来对付刚刚输入的错误字很有用[Ctrl+u]从光标当前位置删除所有字符至行首[Ctrl+k]从光标当前位置删除所有字符至行尾[

2012-11-29 16:08:29 3646

转载 淘宝架构发展历程

2012-11-21 10:29:36 911

转载 MD5 hash 哈希算法

package com.mkyong.test; import java.io.FileInputStream;import java.security.MessageDigest; public class MD5CheckSumExample { public static void main(String[] args)throws Exception {

2012-11-13 11:34:06 1739

转载 使用Java开发需要关注的那些事儿

转自:http://www.javabloger.com/article/java-development-concern-those-things.html近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内幕与同行们分享,大到facebook,百度,小到刚起步的网站。facebook,百度之类的大型网站采用的技术和超凡的处理能力的确给人耳目一新的感觉,但并不是每个网站都是像

2012-11-12 15:31:25 1022

转载 九 redis学习笔记之虚拟内存

转自: http://www.cnblogs.com/xhan/archive/2011/02/07/1949717.html        首先说明下redis的虚拟内存与os的虚拟内存不是一码事,但是思路和目的都是相同的。就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的 内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够用的。除了可以将数

2012-11-12 15:04:09 662

转载 八 redis学习笔记之主从复制

转自:http://www.cnblogs.com/xhan/archive/2011/02/07/1949660.html      redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。下面是关于redis主从复制的一些特点1.master可以有多个slave2.除了多个slave连到相

2012-11-12 15:03:08 587

转载 七 redis学习笔记之持久化

转自:http://www.cnblogs.com/xhan/archive/2011/02/07/1949640.html      redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。下

2012-11-12 15:02:30 842

转载 六 redis学习笔记之发布订阅

转自:http://www.cnblogs.com/xhan/archive/2011/02/06/1949473.html        发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/s

2012-11-12 15:01:38 1589

转载 五.redis pipeline

转自:http://www.cnblogs.com/xhan/archive/2011/02/05/1949276.htmlredis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常 会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回

2012-11-12 15:00:08 1260

转载 四.redis 事务

转自:http://www.cnblogs.com/xhan/archive/2011/02/04/1949151.html  redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个cli

2012-11-12 14:58:17 766

转载 三.redis 排序

转自:http://www.cnblogs.com/redcreen/archive/2011/02/15/1955226.html本篇文章介绍下redis排序命令.redis支持对list,set和sorted set元素的排序。排序命令是sort 完整的命令格式如下: SORT key [BY pattern] [LIMIT start count] [GET pattern] [

2012-11-12 14:56:26 1099

转载 二 redis学习笔记之数据类型

本文介绍下redis支持的各种数据类型包括string,list ,set ,sorted set 和hash 1. keysredis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中不能包括边界字符由于key不是binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的key是不允

2012-11-12 14:53:56 723

转载 一 redis学习笔记之环境搭建

1.简介    redis是一个开源的key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说list,set这些集合类型也只能包含string 类型。你可以在这些类型上做很多原子性的操作。比如对一个字符value追加字符串(

2012-11-12 14:51:38 671

转载 MyBatis 缓存机制深度解剖 / 自定义二级缓存

缓存概述 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持;一级缓存基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存

2012-11-07 13:41:36 1525

转载 MyBatis+Spring基于接口编程的原理分析

对于整合Spring及Mybatis不作详细介绍,可以参考: MyBatis 3 User Guide Simplified Chinese.pdf,贴出我的主要代码如下: UserMapper Interface: Java代码  package org.denger.mapper;    import org.apache.ibatis.annota

2012-11-07 13:39:26 2584 1

转载 张孝祥java.concurrent线程并发学习笔记 - concurrent简介

java.util.concurrent并发库是JDK1.5新提供的,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用

2012-10-31 20:53:17 3787

翻译 张孝祥java.concurrent线程并发学习笔记 - 传统线程回顾

线程的定义:每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。线程的状态:1、 new 新建 2、 Runnable 可

2012-10-31 20:30:32 2514

原创 MyBatisGenerator 自动生成java代码(反向工具)

1、引入jar:mybatis-generator-core-1.3.1-bundle.zip2、编写主类,程序入口:package mybatis;import java.io.File;import java.util.ArrayList;import java.util.List;import junit.framework.TestCase;import o

2012-10-24 11:10:24 9172 2

原创 Apache commons-compress ZIP打包

ZipArchiveOutputStream zipOutput = null; try { String folderPath = "d:\\测试文件夹"; File zipFile = new File("d:\\demo.zip"); zipOutput = (ZipArchiveOutputStream) new ArchiveStreamFactory().cre

2012-10-18 15:25:44 5002

原创 Spring使用Velocity发送Email

class org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader UTF-8 UTF-8 text/html; charset=UTF-8 Email email = new SimpleEmail(); email.setSubject("

2012-10-17 15:11:42 1380

原创 CXF实现WebService动态调用。

JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();Client client = factory.createClient(wsdlUrl); HTTPConduit conduit = (HTTPConduit) client.getConduit();HTTPClientPol

2012-10-17 14:57:17 5451 1

原创 一个简单的java对象序列化工具类

/** * serialized or compressed data. * * @author dongjian */@SuppressWarnings("unchecked")public final class Transcoder { private static Log log = LogFactory.getLog(Transcoder.class); prote

2012-10-17 14:50:49 4003

原创 Apache common-pool 学习和使用

common-pool 是一个对象池框架,使用非常简单,应用非常普遍,值得大家学习。要想使用common-pool ,我们只需要提供一个工厂类,用于为“池”填充对象。如:import org.apache.commons.pool.PoolableObjectFactory;public class PooledObjectFactory implements Pool

2012-10-17 14:47:18 3336

原创 OutOfMemoryError: PermGen space,解决办法

分析原因:java内存大体分为年轻代、年老代、永久代,PermGen space即是永久代,其中年轻代存放生命期较短的对象实例,GC频率高,年老代存放生命期较长的对象实例,GC频低,永久代存放元数据信息(如类的字节码),理论上无GC。测试:我使用CXF的动态Client来调用WebService,经过测试发现CXF的WebService动态调用,每次创建Client时,CXF会根据WSDL文档

2012-10-17 14:37:51 1769

转载 ActiveMQ消息游标

在Activemq以前的版本中,broker会把待发送的消息保存在内存中。这种方式的缺陷是当消费者消费的速度赶不上生产者的速度时,会在broker的内存中积攒大量的消息,当达到一个限额后,broker就不再接收消息。这时生产者就被阻塞了,直到broker将内存清理能保存消息后才能继续发送。    在5.0版本后,Activemq实现了一种新的内存模型来防止慢消费者阻塞快速生产者。通常消息在未发

2012-10-17 14:34:49 2113

转载 ActiveMQ高级特性

异步发送消息生产者使用持久(persistent)传递模式发送消息的时候,Producer.send()方法会被阻塞,直到 broker发送一个确认消息给生产者,这个确认消息暗示生产者 broker已经成功地将它发送的消息路由到目标目的并把消息保存到二级存储中。这个过程通常称为同步发送。但有一个例外,当发送方法在一个事物上下文中时,被阻塞的是 commit方法而不是 sen

2012-10-17 14:32:29 3537

转载 ActiveMQ使用经验与优化

1.1 不要频繁的建立和关闭连接JMS使用长连接方式,一个程序,只要和JMS服务器保持一个连接就可以了,不要频繁的建立和关闭连接。频繁的建立和关闭连接,对程序的性能影响还是很大的。这一点和jdbc还是不太一样的。1.2 Connection的start()和stop()方法代价很高JMS的Connection的start()和stop()方法代价很高,不能经常调用。我们试用的时候,写了

2012-10-17 14:28:27 12061 2

原创 Spring jms 和 ActiveMQ 开发消息服务

ActiveMQ 是高性能消息中间件,主要针对JMS实现,当然其他语言也可以使用。其支持点对点、发布/订阅、推拉模式,具体看官网,这里略。1、先下载ActiveMQ,并成功启动服务。2、建立maven项目,添加依赖activemq-all-5.6.0.jar org.springframework spring-jms 3.1.1.RELEASE lo

2012-08-08 17:10:18 7573

原创 Apache Thrift - java开发详解

1、添加依赖 jar org.apache.thrift libthrift 0.8.0 org.slf4j slf4j-log4j12 1.6.12、编写IDL文件 Hello.thriftnamespace java service.demoservice Hello {    string helloString(1:string

2012-08-06 17:28:57 25954 2

转载 Apache Thrift之java入门

一、开发环境(清单1)1.操作系统    Server-Linux / Client-WinXP2.SDK    Sun JDK1.5+3.需要的jar依赖包    libthrift.jar    slf4j-api-1.5.8.jar    slf4j-log4j12-1.5.8.jar    log4j-1.2.15.jar4.编译工具

2012-08-06 16:37:04 5592

转载 Apache Thrift简介,与其它RPC对比

Thrift  是什么?  Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如:  C++, C#, Cocoa, Erlan

2012-08-06 16:34:26 45732 3

原创 java与C#区别整理

1、属性:Java中定义和访问属性均要用get和set方法,C#则以特殊形式:public int TaskId        {            get { return _taskId; }            set { _taskId = value; }        }2、java中没有virtual关键字,java中基类的所有方法都是vir

2012-07-17 18:22:36 1057

原创 Mybatis 批处理

有的时候,我们需要一次性插入很多的数据或者一次性更新、删除很多的数据,那么为了提高效率,我们需要使用批处理来完成。以下将讨论Mybatis+Spring如何使用批处理。首先应该知道Mybatis是Ibatis的升级版,比Ibatis性能更好,这是我采用Mybatis的原因。Ibatis是支持批处理的:public void batchAddE

2012-07-09 16:26:32 28892 4

原创 spring mvc 输出 json 异常日志、异常国际化处理

异常日志 上面一篇写了异常处理,直接抛出,都交给ExceptionResolver去处理,那么我们怎么记录日志呢?因为异常直接抛出,使用拦截器即可。  异常国际化我们可以设计一个异常类,异常类需要可以设置errorCode,以便将来支持国际化,系统中抛出的异常都是此异常或其子类。例如BPLException,见附件 ------------------spr

2012-06-07 15:57:07 4582 1

原创 spring mvc 输出 json 异常处理

上一篇写了JSON支持,请求成功时,AnnotationMethodHandlerAdapter使用messageConverters将方法返回值输出到客户端。如果请求失败呢?根本就没有返回值,怎么输出?这种情况,这需要使用spring的错误解析器(ExceptionResolver)。当Controller发生异常,ExceptionResolver将被调用,如此便可以对

2012-06-07 15:11:47 26002 7

原创 spring mvc 输出 json

对于web应用,少不了Ajax请求,因此少不了JSON输出支持,在spring-mvc中实现这点非常简单、如下:------------------------------------------spring-mvc配置----------------------------------------------------

2012-06-07 13:44:33 5170

原创 Activiti5 开发介绍1

Activiti5是一款基于java的轻量级工作流引擎。支持BPMN2.0,其依赖的jar非常少,只依赖mybatis。上手迅速,功能丰富,对于一般的工作流应用都可以满足,废话少说,进入正题。 一、搭建开发环境1、安装jdk5+2、安装eclipse3、安装eclipse BPMN designer plugin,地址:http://activiti.org/designer/

2012-05-02 18:05:23 15925 5

空空如也

空空如也

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

TA关注的人

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