從整體結構來看processengineconfiguration很關鍵,其實現類為org.activiti
.engine
.impl
.cfg
.processengineconfigurationimpl,其中其初始化的方法為:
protectedvoidinit()
上面的各個初始化語句的作用如下:
1、inithistorylevel():初始化historylevel,主要內容如下:
publicvoidinithistorylevel()elseif(history_activity.equalsignorecase(history))elseif(history_audit.equalsignorecase(history))elseif(history_full.equalsignorecase(history))else
}2、initexpressionmanager():初始化expressionmanager,主要內容如下:
protectedvoidinitexpressionmanager()
}3、initvariabletypes():初始化variabletypes,主要內容如下:
protectedvoidinitvariabletypes()
}variabletypes.addtype(newnulltype());
variabletypes.addtype(newstringtype());
variabletypes.addtype(newbooleantype());
variabletypes.addtype(newshorttype());
variabletypes.addtype(newintegertype());
variabletypes.addtype(newlongtype());
variabletypes.addtype(newdatetype());
variabletypes.addtype(newdoubletype());
variabletypes.addtype(newbytearraytype());
variabletypes.addtype(newserializabletype());
variabletypes.addtype(newcustomobjecttype("item",iteminstance.class));
variabletypes.addtype(newcustomobjecttype("message",messageinstance.class));
if(custompostvariabletypes!=null)}}
}4、initformengines():初始化formengines,主要內容如下:
protectedvoidinitformengines()
if(customformengines!=null)}}
5、initformtypes():
6、initscriptingengines():
7、initbusinesscalendarmanager():
8、initcommandcontextfactory():初始化commandcontextfactory,主要內容如下:
protectedvoidinitcommandcontextfactory()
}9、inittransactioncontextfactory():
10、initcommandexecutors():初始化commandexecutors,主要內容如下:
protectedvoidinitcommandexecutors()
注意:從上面的四個方法的實現(源**不在這裡貼出)可以看出,「命令執行***」可以增加自定義的***,分別可以指定成預處理和後處理兩部分,具體的變數為customprecommandinterceptorstxrequired、custompostcommandinterceptorstxrequired、customprecommandinterceptorstxrequiresnew、custompostcommandinterceptorstxrequiresnew。這些都是集合型別的變數,另外「命令執行***」之所以要區分為「txrequired」和「txrequiresnew」還不是很清楚,從目前源**中可以看出initidgenerator()初始化的方法中採用了commandexecutortxrequiresnew的「命令執行***」的集合。***的類結構圖如下:
11、initservices():初始化工作流引擎的各個service,主要內容如下:
protectedvoidinitservices()
protectedvoidinitservice(objectservice)
}注意:此處初始化只是為各個service設定「命令執行***」,並且該「命令執行***」已經在initcommandexecutors()方法中初始化過了,另外從源**中可以看出,每個service的「命令執行者」都是由「loginterceptor-->commandcontextinterceptor-->commandexecutorimpl」組成的執行鏈狀結構。注意,其中commandcontextinterceptor方法中對資料庫操作的作用較大,要多關注。
12、initidgenerator():初始化自增長序列生成器。
13、initdeployers():初始化部署者,具體**如下:
protectedvoidinitdeployers()
deployers.addall(getdefaultdeployers());
if(custompostdeployers!=null)
}}注意:從**中可以看到部署者分為自定義的預部署者和後部署者,另外從**裡可以按到預設的部署者是bpmndeployer。至於自定義部署者的用途還需要繼續分析。
14、initjobexecutor():初始化定時任務執行器
15、initdatasource():初始化資料來源
16、inittransactionfactory():初始化事務工廠
17、initsqlsessionfactory():初始化sqlsessionfactory,主要是初始化ibatis的配置等相關資訊,**如下:
protectedvoidinitsqlsessionfactory()catch(exceptione)finally}}
18、initsessionfactories():初始化各個主要service的sessionfactory
19、initjpa():初始化jpa
Activiti5工作流引擎
1.1 1 pocessengine是activiti中最核心的類,其他的類都是由他而來 1.1 2 產生方式 processengine processengine processengines.getdefaultprocessengine 呼叫 processengine的getdefault...
activiti5 工作流的入門
activiti5 工作流的入門,最近工作需要,學習了一下工作流,使用的是activiti 它的前身是jbpm。在入門階段,我推薦可以看 接著可以結合activiti的文件pdf和咖啡兔的demo來檢視工作流的一些功能,比如流程圖匯出,任務完成,流程例項啟動等。總結一下activiti的幾個重點 1...
人工神經網路的研究工作,主要包括哪幾個方面?
1 人工神經網路模型的研究 人工神經網路模型的研究包括 神經網路原型研究,即大腦神經網路的生理結構 思維機制 對神經元生物特性的人工模擬 如時空特性 不應期 電化學性質等 神經網路計算模型與學習演算法 利用物理學的方法進行單元間相互作用理論的研究 如聯想記憶模型等 2 神經網路基本理論研究 神經網路...