06 2011 档案

摘要:JBPM与软件架构模式之命令模式 前面我们介绍了JBPM的长事务设计,其中用到了职责链模式和命令模式,其中职责链模式我们已经介绍过了,今天我们来看看JBPM是怎样使用命令模式的。 命令模式定义 将请求封装成一个对象,使你可以使用不同的请求对客户端进行参数化;对请求排队和记录请求队列,并支持对请求的撤销操作。命令模式UML类图 命令模式代码示例 packageorg.jbpm.pvm.internal.svc;publicabstractclassCommand{protectedRecieverreviever;publicCommand(Recieverreviever){this.revi 阅读全文
posted @ 2011-06-28 23:25 无风听海 阅读(1810) 评论(0) 推荐(0) 编辑
摘要:主键思维定势导致的惨案 记录一下前段时间工作中遇到的问题,希望这血淋淋的惨案可以警醒与我有相同思维定势的网友。 众所周知一般情况下数据库中的记录是按照主键(主键是整数)递减排列的 select * fromPerson.Address 这种情况下我们直接使用top (100),自然会正确的返回前100条记录select top (100) * from Person.Address所以,我就一直自认为下面的嵌套子查询会返回前100条记录SELECT top (100) [AddressID] ,[AddressLine1] ,[AddressLine2] ,[City] ,[StateProv 阅读全文
posted @ 2011-06-27 23:55 无风听海 阅读(458) 评论(4) 推荐(0) 编辑
摘要:--ThreadLocal分析学习 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的 阅读全文
posted @ 2011-06-27 22:34 无风听海 阅读(412) 评论(0) 推荐(0) 编辑
摘要:上篇我们了解并学习了JBPM的长事务实现,其中用到了设计模式中的职责链模式和命令模式;这块还是很有厚重感的,我们可以从中学到很多的东西;今天我们先来学习一下职责链模式。 职责链模式定义 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系;将这些对象连成一条链,并沿这条链传递该请求,直到有一个对象处理该请求。 职责链模式的优点 1.客户提交一个请求,其沿着这条链传递直到得到处理; 2. 发送者和接受者都没有对方的明确信息信息; 3. 链中对象也不知道链的结构,简化了链中对象的链接关系,它仅需要维持其后继者的引用,而不用持有它所有的候选者; 职责链模式UML图 JBPM职责链. 阅读全文
posted @ 2011-06-26 15:51 无风听海 阅读(951) 评论(0) 推荐(0) 编辑
摘要:JBPM之长事务设计解析 在企业开发中,很多时候我们需要把一些业务数据持久化到数据库中;在数据要求不是很高的场景下,我们可以不用考虑事务的提交和回滚;但是很多时候,我们面临的很多的数据库脚本需要保证要成功就都执行成功,否则就要回滚;特别是在流程运行中提交时,我们需要处理上一个节点的相关数据,同时也要处理提交到得节点的相关数据,我们需要保证这些数据的正确性和一致性,特别是在发生异常时,我们需要回滚所有的操作。今天我们来分析一下JBPM的事务设计。 JBPM数据库长事务处理是通过拦截器和具体的承载数据库脚本的命令完成的,下面分别进行简单的分析(以下分析是针对hibernate事务进行分析,spin 阅读全文
posted @ 2011-06-25 19:03 无风听海 阅读(2083) 评论(0) 推荐(0) 编辑
摘要:单例模式是我们开发中常用的一种设计模式,今天结合JBPM来学习这个模式。本来打算先分析JBPM中的单例模式,然后总结单例模式;但是JBPM的实现并不是完全符合GOF中队单例模式的完成定义,其实现跟自己的业务有一定的关联。那么我们就先来学习严格意义上的单例模式,然后再分析JBPM实现的单例模式。单例模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点让类自己负责实例的生成,并提供访问该实例的方法 在我们实际的开发中,很多时候我们需要控制某个类的实例化,并且需要控制其只能实例化一个实例;其中一个最好的方法就是让这个类负责自己的实例化,并且保证不会有其他的实例被创建,同时向外提供一个访问. 阅读全文
posted @ 2011-06-09 00:42 无风听海 阅读(719) 评论(0) 推荐(0) 编辑
摘要:在应用程序中使用多个线程的一个好处是每个线程都可以异步执行。然而,线程的异步特性意味着必须协调对资源(如文件句柄、网络连接和内存)的访问。否则,两个或更多的线程可能在同一时间访问相同的资源,而每个线程都不知道其他线程的操作。结果将产生不可预知的数据损坏。这个时候我们就需要lock上场了。Lock的作用Lock获取给定对象的互斥锁,保证相应的代码块运行时,不会被其他线程中断;直到该对象被释放时其他线程才能访问相应的代码块;Lock实现本质通过System.Threading.Monitor的enter和exit方法实现的代码实例如下View Code 1publicvoidPrintByInn. 阅读全文
posted @ 2011-06-09 00:30 无风听海 阅读(592) 评论(0) 推荐(1) 编辑
摘要:电脑安装windows server 2008 导致磁盘分区消失解决方法 前段时间买了个本本,本本本身预装dos系统,但是买的时候机子里已经装好了windows 7,自己感觉windows 7并不适合开发使用,就开始重装系统,可以谁想其中遇到不少的问题,用了近一周的时间,最后选中windows server 2008.今天不谈驱动问题。导致原因1.在windows xp里安装windows server 2008 ,选择安装到F盘,文件复制重新启动 安装时提示错误,不能进行安装;2.格式化xp所在盘,但是没有处理E盘,然后安装windows server 2003,安装完毕后然 后安装wind 阅读全文
posted @ 2011-06-04 08:16 无风听海 阅读(3285) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示