摘要: 使用Active发送文件ActiveMq 本身提供对于传输文件的支持。1. 直接传输文件: 使用connection.createOutputStream 的形式。这种方式适合小文件。不能传输大文件。2. BlobMessage:(Binary Large OBjects) 这种方式可以传输大文件。其本质是发送一个BlobMessage时,先将文件传输到文件服务器上,然后接受消息时再从文件服务器上取。这样我们在mq里面传输的实际上只是一个文件ID本文介绍的是第二种方法,MQ本身自带jetty启动方式。 ActiveMQConnectionFactory fac = new Act... 阅读全文
posted @ 2014-03-27 14:27 yingzi.zhu 阅读(2103) 评论(0) 推荐(0)
摘要: sleep和wait的区别是一个老生常谈的问题。Sleep 是 Thread类的方法, wait是Object类的方法。但是关键的区别是对锁的操作问题。当我们调用sleep的时候,线程进入休眠,但是获得的锁并不释放而是用wait的时候,线程进入等待队列,会释放获得的锁看一段代码:public class TestWait { public static void main(String[] args) throws InterruptedException { Data d = new Data(); WaitTest st1 = new WaitTest(d... 阅读全文
posted @ 2014-02-12 13:51 yingzi.zhu 阅读(3100) 评论(0) 推荐(0)
摘要: Apache common-io 包是常用的工具包,他提供了对IO操作的一些封装。首先看一下input包下的 AutoCloseInputStream 类 1: * This class is typically used to release any resources related to an open 2: * stream as soon as possible even if the client application (by not explicitly 3: * closing the stream when no longer needed) or ... 阅读全文
posted @ 2014-01-13 11:02 yingzi.zhu 阅读(1415) 评论(1) 推荐(1)
摘要: 现在web开发基本都是MVC的架构了,struts、springMvc 等等。其中一个重要的功能就是将客户发起的请求,分发至我们定义的Action里面的方法之中。 闲暇之余,我也做了一个类似于spring的方式,在Action中配置注解RequestMapping,将前端的请求分发至action的方法中。实现的过程还是比较简单的。 1. 实现url映射的注解 2. 在servlet容器启动时,... 阅读全文
posted @ 2013-12-20 10:51 yingzi.zhu 阅读(1515) 评论(1) 推荐(1)
摘要: 开发web,离不开对数据库的操作。每次JDBC操作,都会用到Connection。如果没一次数据库操作都新建一个Connection,会造成较大的系统开销。数据库连接池就是用来解决这个问题。数据库连接池的基本思路就是,我先初始化一些Connection,当需要连接时,从连接池里取,如果没有空闲连接就新建一个连接,如果达到连接池设置的上限,则等待其他连接的释放。像C3P0之类的连接池,都支持配置,如上线多少个,如果新建一次性增加多少个,初始化时多少个。每隔多久回收一次等等策略。下面来所说我的实现:连接池实现类/* * To change this template, choose Tools | 阅读全文
posted @ 2013-12-11 13:35 yingzi.zhu 阅读(561) 评论(0) 推荐(0)
摘要: 前面说到Java动态代理,Mybatis通过这种方式实现了我们通过getMapper方式得到的Dao接口,可以直接通过接口的没有实现的方法来执行sql。AuthUserDao mapper = session.getMapper(AuthUserDao.class);getMapper方法到底做了什么。跟踪getMapper方法,进入到 MapperProxyFactory 类的 newInstance(SqlSession sqlSession) 方法。 @SuppressWarnings("unchecked") protected T newInstance(Mapp 阅读全文
posted @ 2013-10-25 17:12 yingzi.zhu 阅读(4094) 评论(0) 推荐(0)
摘要: 先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢?我们并没有具体的CRUD操作的实现类啊? 前面说到得到SqlSessionFactory对象,得到SqlSessionFactory是为了得到sqlSession,。SqlSession对象完全包含以... 阅读全文
posted @ 2013-10-23 17:34 yingzi.zhu 阅读(841) 评论(0) 推荐(0)
摘要: Mybatis 的使用,首先需要构建一个SqlSessionFactory 实例。而该实例可以通过SqlSessionFactoryBuilder来创建。 String resource = "org/mybatis/example/Configuration.xml";Reader reader = Resources.getResourceAsReader(resource);SqlSessi... 阅读全文
posted @ 2013-10-22 16:47 yingzi.zhu 阅读(532) 评论(0) 推荐(0)
摘要: Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性。本人目前所在公司也使用nginx,主要用来做负载均衡服务器。同时也可以作为邮件代理服务器。 1. nginx的安装。本人安装环境为ubuntu。可以选择编译源码的方式安装,但是比较繁琐。需要安装gzip\rewrite\ssl 等模块。同时下载nginx源码。编译。对于Ubuntu10.04 或者更新的版本,只是... 阅读全文
posted @ 2013-07-30 14:39 yingzi.zhu 阅读(383) 评论(0) 推荐(0)
摘要: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。同时也可以用作不同系统之间的数据共享。应用比较广泛。下面介绍一下环境的memcached环境的搭建及简单实用 1. 下载 libevent。官网下载 libevent 2. 下载 memcached。官网下载 memcached 3. 安装libevent,解压压缩包 1: ./confi... 阅读全文
posted @ 2013-07-18 14:55 yingzi.zhu 阅读(5508) 评论(1) 推荐(1)