03 2010 档案
【Java基础专题】IO与文件读写---使用DirectoryWalker和FileFilterUtils进行搜索
摘要: Apache commons IO包中提供了一个可以遍历目录下资源的DirectoryWalker,还有很多的IOFileFilter用于过滤文件目录。下面的例子分别演示了这个功能。
这两个搜索类都是以内部类的方式嵌入客户端的,客户端接收客户的参数,然后通过一个后台线程来进行搜索,等待子线程完成搜索后(join方法),再打印搜索结果。
注意这个过程是可以被cancel的。cancel主要有2种情况。外部cancel:外部线程通过调用内部类的cancel()方法。内部cancel:在handleDirectory、handleFile中主动抛出CancelException。
walk方法在每次执行前、后都会检查当前是否有cancel指令发出(checkIfCancelled ---> handleIsCancelled),如果有那么默认立刻抛出CancelException,然后调用handleCancelled方法。
阅读全文
posted @
2010-03-31 23:45 Paul Lin 阅读(2558) |
评论 (1) 编辑
【讨论】这样基于Domain Event的分层是否合理?
摘要: 最近在对之前做过的一个项目进行二期修改。鉴于之前典型的贫血结构,以及Controller--->Service--->DAO模式让代码压力都集中在service层的情况。在参考了Banq写的几篇对象职责和Domain Event的文章后,我也试着捣鼓了一下新的分层模式。贴出来和大家讨论,欢迎拍砖!
阅读全文
posted @
2010-03-23 17:05 Paul Lin 阅读(1571) |
评论 (0) 编辑
【Java框架专题】Hibernate----悲观锁与乐观锁、Hibernate的锁定机制
摘要: 乐观锁定采用的版本策略实际上和SVN的版本冲突解决方案是同样的:采用其它人的(先提交的)、采用自己的(后提交的)、合并他人和自己的(合并冲突更新)
悲观锁定(Pessimistic locking)会采用基于数据库提供的锁机制来进行锁定。它会在物理层对行甚至表进行锁定。使得应用的并发性变差。
阅读全文
posted @
2010-03-15 11:07 Paul Lin 阅读(1487) |
评论 (0) 编辑
【Java框架专题】Hibernate----数据并发与事务隔离
摘要: READ COMMITITED:不允许读取未提交的数据,但可以读取已提交的数据。所以可能出现不可重复读、和幻像读(读的过程依然可以被修改、增加、删除)
REPEATABLE READ:通过行锁定,在读的数据不允许其它进程修改。确保已读取的数据不被修改、删除(不可重复读)但无法阻止其它进程写入新数据,所以不能确保读取到新的数据(幻像读)
SERIALIZABLE:通过表锁定,彻底禁止读取期间其它进程的修改、删除(屏蔽不可重复读)和增加(屏蔽幻像读)
但是不管是那种隔离级别,对第一类丢失更新都是不能接收的
阅读全文
posted @
2010-03-15 11:04 Paul Lin 阅读(1062) |
评论 (0) 编辑
【Java框架专题】Hibernate---在Hibernate中获取数据方式与缓存使用(转)
摘要: 一级、二级缓存使用的key均为po的主键ID,value即为po实例对象,查询缓存使用的则为查询的条件(hql转化而成的sql语句)、查询的参数、查询的页数,value有两种情况,如果采用的是select po.property这样的方式那么value为整个结果集,如采用的是from这样的方式那么value为获取的结果集中各po对象的主键ID,这样的作用很明显,节省内存。
阅读全文
posted @
2010-03-15 11:00 Paul Lin 阅读(4076) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---对同步/异步和阻塞/非阻塞的理解
摘要: ①同步的操作,如果在等待的过程不能做别的事情,它是同步+阻塞的。这个也是最常见的
②同步的操作,如果在等待的过程可以做别的事情,它是同步+非阻塞的。
③异步的操作,如果在等待的过程不能做别的事情,它是异步+阻塞的。
④异步的操作,如果在等待的过程可以做别的事情,它是异步+非阻塞的。这个也是最常见的
阅读全文
posted @
2010-03-10 15:36 Paul Lin 阅读(2780) |
评论 (2) 编辑
【Java基础专题】IO与文件读写---同步/异步与阻塞/非阻塞的区别(转)
摘要: 同步/异步:消息通知机制。是自己主动关注消息还是靠别人通知
阻塞/非阻塞:消息处理机制。等待消息处理完成的过程能否做别的事情
阅读全文
posted @
2010-03-10 14:54 Paul Lin 阅读(2623) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO包进行资源遍历
摘要: 要使用DirectoryWalker来遍历一个目录并进行相应的操作,步骤如下:
①创建一个继续于DirectoryWalker的类,并在构造方法中调用super();
②定义一个业务入口方法,例如clean。在这个方法中调用walk方法
③覆盖DirectoryWalker类的handleDirectory方法,提供相应的处理逻辑
④覆盖DirectoryWalker类的handleFile方法,提供相应的处理逻辑
阅读全文
posted @
2010-03-09 00:26 Paul Lin 阅读(3508) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO过滤文件和目录
摘要: 它们可以分为两大类:
①实质性过滤器:例如针对文件的类型,属性,名称,大小进行过滤的过滤器
②过滤器连接器:典型的包括AndFileFilter、OrFileFilter。用于逻辑连接多个过滤器
阅读全文
posted @
2010-03-09 00:02 Paul Lin 阅读(1347) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO简化文件读写
摘要: FileUtils总体上来说,主要功能有:
※ 资源的创建、删除
※ 资源的复制、移动
※ 资源的读写
※ 资源的比较
※ 资源的过滤
※ 资源的转换
阅读全文
posted @
2010-03-08 15:07 Paul Lin 阅读(6565) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---使用Apache commons io包提高读写效率
摘要: 本文通过对Apache commons io包的input,output子类的源代码研究,来揭示为什么使用commons IO包会在性能上由于JDK自带的IO类。
特别是输出流方面
阅读全文
posted @
2010-03-04 10:28 Paul Lin 阅读(5640) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---Java的IO流架构
摘要: 使用图例全面展示Java中IO的架构,特别是节点流和过滤流及其之间的转换
阅读全文
posted @
2010-03-02 09:47 Paul Lin 阅读(4306) |
评论 (3) 编辑