Activiti 5.3與Spring整合也比較簡單,其基本思想就是,通過Spring的IOC容器來管理Activiti的流程引擎實例以及相關服務,可見,主要是基於Activiti在與Spring整合上努力上,做好配置即可。這裏基於前面的<receiveTask>的例子來進行,可以參考:Activiti 5.3:流程活動自動與手工觸發執行,簡單的流程,如圖所示:
Activiti 5.3與Spring整合,默認使用的配置文件爲activiti-context.xml,當然可以在實際使用的時候覆蓋掉默認的配置,或者增加自己的其他的Spring的配置。
我們也命名爲activiti-context.xml,內容(安裝Activiti 5.3的時候,實例工程中已經附帶)如下所示:
這裏面,我把Activiti 5.3默認工程中有關JPA的部分配置刪除了,其實通過這個就可以初始化Activiti引擎實例。爲了測試方便,將獲取服務的實現抽象出來,同時使用Spring自帶的與JUnit4集成的工具(AbstractTransactionalJUnit4SpringContextTests)。我們的實現類爲AbstractSpringTest,代碼如下所示:
上面,將classpath:activiti-context.xml在測試的時候進行加載,這樣,在測試的子類中,只需要將其他的相關Spring配置單獨加載即可,業務配置與流程配置分開,便於維護。
具體測試用例,這裏實現了一個簡單的Spring Bean,配置文件爲mySpringContext.xml,如下所示:
Spring Bean的實現,代碼如下所示:
下面,看看我們具體的測試用例,實現代碼如下所示:
運行程序,結果信息如下所示:
上述一部分是加載Spring配置,一部分是流程執行信息。