`
zhang_xzhi_xjtu
  • 浏览: 536370 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
最新版本 http://zhang-xzhi-xjtu.iteye.com/blog/474702 CodeLineCounter2.1 note. version 2.1 作者: zhang_xzhi email: zhang_zhi@163.com blog: http://zhang-xzhi-xjtu.iteye.com svn: https://codelinecounter.svn.sourceforge.net/svnroot/codelinecounter 1 一句话介绍 源代码统计工具,支持基于Spring的配置以及提供了一些扩展点使得用户可以方便的扩展。 同时可以生成各 ...
Collecting Parameter是我比较喜欢使用的一个模式。 其精髓为把一个参数做为收集结果的数据容器,然后把该容器当作参数传递给所有参与计算结果的方法,而从达到收集结果的效果。 例如: private void f(Set<String> fileNames) { Set<ResultItem> resultItems = new HashSet<ResultItem>(); for (String fileName : fileNames) { parseFile(fileName, resultItems); } ...
领域模型的建模有时候是很复杂的,大量对象之间构成复杂的关系网,而一般这些领域对象都是存储在数据库里,所以对象的建立保存就会变得比较复杂。 Lazy Load是一个缓解这个问题的一个办法,但是不是所有场合都适用。 问题的解决还是应该回到领域模型的建立上来,当定义对象时,要对不同的关注点进行分离。当对象之间有复杂的关系网时,并不是相关对象的网络要一次的建立好。可以加一些对象的键来分离对象模型,利用这些键可以进一步构建对象关系网。 比如,A中有B,C,B中有D,E,C中有F,并不需要一次构建起A的整个对象,有可能用一些键进行一些划分,例如A中有B,C,B中不直接引用D,E,而且构建KeyOfD, ...
不说了,两个字,完美。除了time bug有点闪眼睛。 通关后发现OCD模式。呵呵,挑战啊。 上图。 夏天。 秋天。 冬天。 计算机。 春天

finally两例

不建议这么使用finally。 但是这两个例子可以帮助更好的理解finally。 // always return 1. public static int f(boolean b) { while (b) { try { return 0; } finally { break; } } return 1; } // always return 1. public static int f() { try { return 0; } finally { return 1; } ...
最新版本 http://zhang-xzhi-xjtu.iteye.com/blog/474702 CodeLineCounter2.0 note. version 2.0 作者: zhang_xzhi email: zhang_zhi@163.com blog: http://zhang-xzhi-xjtu.iteye.com 1 一句话介绍 源代码统计工具,支持基于Spring的配置以及提供了一些扩展点使得用户可以方便的扩展。 2 系统设计及扩展 系统按照以下阶段执行。 阶段1 接收文件      阶段2 统计行数       阶段3 生成报告 接收文件用 public inter ...
Drools5的一些重要改动。 改一些基本类名字。Drools5试图统一Rule Engine,Workflow,EPM(事件处理模型)。所有的东西都改为Knowledge什么什么。 可以定义rule engine的局部类型。 Stateful session可以持久化了。 CommandExecutor统一了stateless和stateful session的调用模型,并且都可以返回result。 Batch Executor简单的帮助工具。 Knowledge Agent+change Set提供了监控资源文件以及rebuild KnowledgeBase的功能,但是并不完全。 ...
在jbpm中,task可以指派给一个actor,这个actor是一个string,所以扩展性比较好。它的意义可以根据具体的逻辑来制定,如user,role,group等等都是可以的。 另外,还可以指定task的pooledActors,这个是task的备用actor。使用思路是,如果actor ...
使用swimlane可以让process的task的assignment更加清晰。 如下所示:task0和task1都是引用了swimlane admin。可以看成一种task assigment的连续性,task0和task1是相关的,因为它们的assignment都是同一个swimlane。 <process-definition name='testSwimlane'> <swimlane name='admin'> <assignment class='test.swimlane.Admin' /> </swimlane> ...
jbpm的版本为3.2.3 timer本身是由JobExecutor执行的。所以要先启动它, JbpmConfiguration.getInstance().startJobExecutor(); action必须实现ActionHandler。 <process-definition name='testTimer'> <start-state> <transition to='start' /> </start-state> <state name='start'> <timer name='remi ...
decision节点可以实现多路选择。 <?xml version="1.0" encoding="UTF-8"?> <process-definition name="testDecision"> <start-state name="s"> <transition to="inputScore" /> </start-state> <state name="inputScore"> ...
fork的使用有一些小的地方需要注意。 1 fork节点出去的transition必须有name属性,因为Fork要用该属性来构建子token,如果不指定的话,那么所有的transition的name都为null,则只有一个transition会被调用。 2 fork的行为是依次调用transition,所以在底层它并不是一个并发的模型,如果需要使用并发模型的话,可以考虑jbpm的异步调用,当然,也可以自己起一个Thread去完成一些task。 3 token的name是和transition的name相关的,如下例所示,rootToken的fullName为'/',fork出来的两个子tok ...
当process流进task-node 't'的时候,进入wait-state,当两个task都被end的时候,process继续。 <process-definition name='simpleTask'> <start-state> <transition to='t' /> </start-state> <task-node name='t'> <task name='task0'> <assignment class='test.task.TaskA' /> </t ...
重新改了一下jbpm的教程的第一个例子,希望对刚接触jbpm的人有帮助。 HelloWorldProcess.xml <process-definition name='helloProcess'> <event type="node-enter"> <script> System.out.println("this script is entering node "+node); </script> </event> <start-state > & ...

iBATIS的cache

    博客分类:
  • db
<settings cacheModelsEnabled="true" />是一定要配置的,不然cache不起作用。 readonly的配置 当readonly为true时,serialize是没有意义的,每个返回的对象就是cache中的对象,所以如果改动了该对象,则cache和数据库就不一致了。当readonly为true是不改动返回值要靠我们人工了。 当readonly为false时,serialize为false时,cache的实体是不需要实现Serializable的,但是很奇怪的是,其返回的实体不是原本cache中的实体,改动返回值不会影响以后的返 ...
Global site tag (gtag.js) - Google Analytics