<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[songry的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/songry</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; songry]]></copyright><item><title><![CDATA[activiti-5.1核心之CommandContext]]></title><link>https://blog.youkuaiyun.com/songry/article/details/6118564</link><guid>https://blog.youkuaiyun.com/songry/article/details/6118564</guid><author>songry</author><pubDate>Wed, 05 Jan 2011 18:05:00 +0800</pubDate><description><![CDATA[众所周知，从以前的jbpm到现今的activiti，流程引擎的内部执行模式是command模式，不管是启动流程，还是推动流程等等，都采用了command的execute方法。而command执行依赖于CommandContext，直译就是command的上下文，那么，我们就来看看CommandContext里面的内容。首先是CommandContext本身的类变量和实例变量： private static Logger log = Logger.getLogger(CommandContext.class.]]></description><category></category></item><item><title><![CDATA[activiti5.0DOC之Activiti组件系列]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5731462</link><guid>https://blog.youkuaiyun.com/songry/article/details/5731462</guid><author>songry</author><pubDate>Tue, 13 Jul 2010 12:40:00 +0800</pubDate><description><![CDATA[<br />原文网址：<br />http://www.activiti.org/components.html<br /> <br />Activiti引擎是一个便于Java开发者使用的轻量级流程引擎。为了达到这个目的，我们将延续jBPM的成功之路。jBPM和Activiti的最大不同不在于引擎，而在于我们将开发的更多复杂的组件。<br /> <br />在此我们将提供更多关于Activiti组件在开发上下文中联合进行BPM处理的细节。蓝色的组件将成为Activiti的一部分，灰色的则不是。<br />A]]></description><category></category></item><item><title><![CDATA[activiti5.0.alpha3之流程引擎建立入口]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5722938</link><guid>https://blog.youkuaiyun.com/songry/article/details/5722938</guid><author>songry</author><pubDate>Fri, 09 Jul 2010 12:29:00 +0800</pubDate><description><![CDATA[好吧，alpha1里头通过Configuration来建立流程引擎的方法被废弃了，我们重新开始。这回的入口类是org.activiti.test.ProcessDeployer。先说点题外话，这次的重构尽管给我的blog撰写带来了麻烦，但是设计思想绝对是优秀的。首先看原来alpha1版本中example中的各项test类都是采用的多重继承的方式，而在alpha3中使用了ProcessDeployer对象，这符合优先使用组合而非继承的设计原则。所以，牛人的代码也不是一开始就优美的，也是经过了多次重构之后，才变]]></description><category></category></item><item><title><![CDATA[MD,杯具鸟~]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5722639</link><guid>https://blog.youkuaiyun.com/songry/article/details/5722639</guid><author>songry</author><pubDate>Fri, 09 Jul 2010 10:42:00 +0800</pubDate><description><![CDATA[之前activiti相关的文章都是基于activiti-5.0.alpha1

这个版本的，然后现在版本更新到了activiti-5.0.alpha3
......，然后我郁闷地发现，程序结构完全变化了，之前的文章直接作废，只能重新开始了。]]></description><category></category></item><item><title><![CDATA[activiti5.0.alpha1之配置文件的结构及功能解析]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5696624</link><guid>https://blog.youkuaiyun.com/songry/article/details/5696624</guid><author>songry</author><pubDate>Sat, 26 Jun 2010 22:15:00 +0800</pubDate><description><![CDATA[activiti的配置文件主体类是Configuration，它的源码分成几部分，首先是类属性：  //日志初始化  private static Logger log = Logger.getLogger(Configuration.class.getName());  //定义通用的常量，用于各项初始化  public static final String NAME_COMMANDEXECUTOR = "CommandExecutor";  public static final String NAM]]></description><category></category></item><item><title><![CDATA[activiti5.0.alpha1之流程引擎建立入口]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5692121</link><guid>https://blog.youkuaiyun.com/songry/article/details/5692121</guid><author>songry</author><pubDate>Thu, 24 Jun 2010 17:24:00 +0800</pubDate><description><![CDATA[从activiti的example开始，example中所有的测试类都继承了ActivitiTestCase，顾名思义，ActivitiTestCase明显是对环节进行初始化的基类，然后看到ActivitiTestCase继承了ProcessEngineTestCase，在ProcessEngineTestCase之中，对引擎进行了初始化。那么，首先，让我们来看看ProcessEngineTestCase是怎样进行初始化的，籍此追溯到activiti的源码中去。public class ProcessEng]]></description><category></category></item><item><title><![CDATA[activiti5.0DOC之用户任务]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5691672</link><guid>https://blog.youkuaiyun.com/songry/article/details/5691672</guid><author>songry</author><pubDate>Thu, 24 Jun 2010 15:19:00 +0800</pubDate><description><![CDATA[User task用户任务DescriptionA 'user task' is used to model work that needs to be done by a human actor. When process executes arrives at such a user task, a new task is created in the task list of the user(s) or group(s) assigned to that task. 用户任务是一个需要参与者执行的工]]></description><category></category></item><item><title><![CDATA[activiti5.0DOC之开始事件]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5691232</link><guid>https://blog.youkuaiyun.com/songry/article/details/5691232</guid><author>songry</author><pubDate>Thu, 24 Jun 2010 12:21:00 +0800</pubDate><description><![CDATA[Start events开始事件A start event indicates where a process starts. The type of start event (process starts on receival of message, on specific time intervals, etc.), defining how the process is started is shown as a small icon in the visual representation of ]]></description><category></category></item><item><title><![CDATA[[结构模式]Composite模式的理解]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5646130</link><guid>https://blog.youkuaiyun.com/songry/article/details/5646130</guid><author>songry</author><pubDate>Thu, 03 Jun 2010 23:34:00 +0800</pubDate><description><![CDATA[<br />Composite定义:<br />将对象以树形结构组织起来,以达成“部分－整体” 的层次结构，使得客户端对单个对象和组合对象的使用具有一致性.<br /> <br /><br /> 优点：<br /> client直接调用Component接口，无须关心操作的是Composite还是Leaf--直白一点就是client不管是操作Composite还是Leaf，都可以采用一样的代码；当client执行Component的Operation()时，如果是操作的Composite，则Composit]]></description><category></category></item><item><title><![CDATA[junit源码学习--运行测试的过程]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5620700</link><guid>https://blog.youkuaiyun.com/songry/article/details/5620700</guid><author>songry</author><pubDate>Mon, 24 May 2010 17:45:00 +0800</pubDate><description><![CDATA[找到textui/TestRunner.java，看到了阔别很久的main方法，OK，开始运行测试。TestRunner.java/**  * 运行自身的start方法，并将返回结果提交给容器  */public static void main(String args[]) {  TestRunner aTestRunner= new TestRunner();  try {  ]]></description><category></category></item><item><title><![CDATA[junit源码学习-交织的TestCase和TestResult]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5618354</link><guid>https://blog.youkuaiyun.com/songry/article/details/5618354</guid><author>songry</author><pubDate>Sun, 23 May 2010 17:56:00 +0800</pubDate><description><![CDATA[TestCase中实例化了TestResult，并将自身化为参数调用TestResult的run方法 TestCase.java/**  * Creates a default TestResult object  * 生成TestResult实例，单独开方法的原因我猜是有可能使用者自己继承或者实现TestCase和TestResult，  * 那么直接重写这个方法就行了  * @]]></description><category></category></item><item><title><![CDATA[junit源码学习--观察者模式]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5618289</link><guid>https://blog.youkuaiyun.com/songry/article/details/5618289</guid><author>songry</author><pubDate>Sun, 23 May 2010 17:07:00 +0800</pubDate><description><![CDATA[TestResult担任发布者角色，拥有protected List fListeners;担任观察者角色以下都是TestResult类源码/**  * Registers a TestListener观察者注册  */ public synchronized void addListener(TestListener listener) {  fListeners.add(listene]]></description><category></category></item><item><title><![CDATA[ibatis的cacheModel刷新失效问题]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5581369</link><guid>https://blog.youkuaiyun.com/songry/article/details/5581369</guid><author>songry</author><pubDate>Wed, 12 May 2010 10:04:00 +0800</pubDate><description><![CDATA[我在项目架构中为了达到减少配置的目的，将ibatis的*sql.xml文件路径配置放到了spring里面（spring2.5以上版本支持）   class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">     classpath:sql-map-config.xml           classpath:/sql/*/*S]]></description><category></category></item><item><title><![CDATA[mysql学习1--概述及特征]]></title><link>https://blog.youkuaiyun.com/songry/article/details/5393246</link><guid>https://blog.youkuaiyun.com/songry/article/details/5393246</guid><author>songry</author><pubDate>Thu, 18 Mar 2010 16:18:00 +0800</pubDate><description><![CDATA[·   内部构件和可移植性 o  提供了事务性和非事务性存储引擎。--是否指如果要采用事务管理，必须切换存储引擎？？？ ·         语句和函数DELETE、INSERT、REPLACE和UPDATE返回更改（影响）的行数。连接到服务器时，可通过设置标志返回匹配的行数。MySQL的SHOW命令可用于检索关于数据库、数据库引擎、表和索引的信息。EXPLA]]></description><category></category></item></channel></rss>