成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談jBPM4與Spring整合的2種方式

開發 后端
要知道如何將jBPM4與Spring整合,可以先了解jBPM4的IOC容器,本文將簡單介紹下jBPM4與Spring整合的2種方式。

如果不了解jBPM4的IOC容器,可以先看ronghao的這篇文章http://www.javaeye.com/topic/381607,是介紹jBPM4的IOC容器的。下面我們介紹jBPM與Spring整合的2種方式:

第一種:手工將SessionFactory放入jBPM4中。

第1步:更改jbpm.spring.default.cfg.xml配置文件,將下面的部分注釋掉

  1. <!--  
  2. <hibernate-configuration> 
  3. <cfgresourcecfgresource="jbpm.hibernate.cfg.xml"/> 
  4. </hibernate-configuration> 
  5.  
  6. <hibernate-session-factory/> 
  7. --> 

注釋的部分是在jBPM4中創建了sessionFactory,而我們只需要一個sessionFactory。既然要將jBPM4與Spring的整合,那就希望由Spring來統一管理sessionFactory和事務,在Spring的配置文件中構造一個sessionFactory。ProcessEngine是jBPM4的Facade模式,一切由它與外部交互,

第2步:在Spring配置文件中寫一個bean:

  1. <beanidbeanid="processEngine"class="com.family168.jbpm.ProcessEngineFactoryBean"> 
  2. <propertynamepropertyname="sessionFactory"ref="sessionFactory"/> 
  3. </bean> 

第3步:在ProcessFactoryBean中注入SessionFactory:

  1. publicvoidsetSessionFactory(SessionFactorysessionFactory){  
  2. this.sessionFactory=sessionFactory;  

第4步:在ProcessFactoryBean中創建一個SpringConfiguration,然后將sessionFactory放入SpringConfiguration中,再從SpringConfiguration得到processEngine,代碼如下:

  1. publicvoidafterPropertiesSet(){  
  2. SpringConfigurationcfg=newSpringConfiguration(jbpmConfigurationLocation);  
  3. cfg.setApplicationContext(applicationContext);  
  4.  
  5. cfg.setSessionFactory(sessionFactory);  
  6. this.processEngine=cfg.buildProcessEngine();  

然后我們的工作就可以開展了,可以從processEngine得到所有的service。比如:

  1. ProcessEngineprocessEngine=(ProcessEngine)ctx.getBean("processEngine");  
  2. RepositoryServicerepositoryService=processEngine.getRepositoryService();  


第2種:獲得Hibernate的SessionFactory。

第1步:與第一種方式的第1步一樣。

第2步:更改jbpm.tx.spring.cfg.xml配置文件:

將<standard-transaction-interceptor/>改成<spring-transaction-interceptorcurrent="true"/>然后將<transaction/><hibernate-session/>改成<hibernate-sessioncurrent="true"/>這部分修改是將jBPM4創建的spring事務和hibernate的session改成從當前的ThreadLocal中獲得session和事務。

第3步:在Spring配置文件中寫bean,processEngine和template:

  1. <beanidbeanid="jbpmConfiguration"class="org.jbpm.pvm.internal.cfg.SpringConfiguration"> 
  2. <constructor-argvalueconstructor-argvalue="jbpm/jbpm.cfg.xml"/> 
  3. </bean> 
  4.  
  5. <beanidbeanid="processEngine"factory-bean="jbpmConfiguration"factory-method="buildProcessEngine"/> 
  6.  
  7. <beanidbeanid="jbpmTemplate"class="com.family168.jbpm.JbpmTemplate"> 
  8. <propertynamepropertyname="processEngine"ref="processEngine"/> 
  9. <propertynamepropertyname="dataSource"ref="dataSource"/> 
  10. </bean> 

processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并從SpringConfiguration的buildProcessEngine中獲得。

jbpmTemplate主要是控制事務,在processEngine外面創建事務,這樣使用的時候會先調用jbpmTemplate,再調用processEngine,否則它會說事務沒有啟動。在jbpmTemplate中注入processEngine:

  1. publicvoidsetProcessEngine(ProcessEngineprocessEngine){  
  2. this.processEngine=processEngine;  

這里我的理解是我們在上面已經將事務改成從當前的Threadlocal中獲得,所以jBPM4是必須當前有事務,如果我沒有創建事務的話,在使用processEngine時就會說事務沒有啟動。所以我們就封裝了一個jbpmTemplate,如果我的理解有誤還請大家指出。

第1種整合方式我會提供一個例子,第2種整合方式之后可以看我們的jBPM-Side里的控制臺。

【編輯推薦】

  1. Struts2教程:攔截器概述
  2. Struts2教程:上傳任意多個文件
  3. Struts2教程:在Action類中獲得HttpServletResponse對象
  4. Struts2教程:使用Validation框架驗證數據
  5. Struts2教程:使用validate方法驗證數據
責任編輯:彭凡 來源: javaeye
相關推薦

2009-06-24 14:57:03

jBPM4架構

2009-06-25 17:13:51

jBPM與Spring

2009-06-26 13:51:49

jBPM4高級圖形執行

2009-06-26 09:15:31

jBPM4基本活動

2009-06-26 09:32:35

jBPM4基本活動

2009-06-23 15:30:20

jBPMMySQL

2009-03-06 14:34:31

StrutsHibernateSpring

2009-06-01 10:28:03

SpringOSGi整合

2009-06-23 18:18:13

SpringHibernate

2011-02-28 11:19:12

雙絞線布線

2009-06-19 18:26:38

Spring事務配置

2011-02-28 13:51:30

Spring事物配置

2012-07-17 09:16:16

SpringSSH

2011-11-25 10:25:27

SpringJava

2009-07-14 14:41:33

Webwork與Spr

2018-04-28 15:51:33

Mybatis方式傳遞

2009-07-09 18:24:00

WebWork與Spr

2014-12-31 14:09:23

xml解析

2020-05-11 13:03:03

SR-TEIP路由器

2020-02-10 15:50:18

Spring循環依賴Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品一区二区三区 | 成人精品一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 亚洲精品专区 | 99pao成人国产永久免费视频 | 久久综合影院 | 99精品国产一区二区三区 | 久久久www成人免费无遮挡大片 | 亚洲美女网站 | 精品久久国产 | 欧美h| 亚洲综合成人网 | 久久久久国产精品一区二区 | 99在线播放| 精品久久久久久久人人人人传媒 | 一级做a爰片性色毛片 | 久久久久一区 | 欧美国产精品一区二区三区 | 在线观看特色大片免费网站 | 免费国产一区 | 性做久久久久久免费观看欧美 | 欧州一区二区三区 | 欧美一区二区三区视频 | 国产伦精品一区二区三区精品视频 | 91直接看| 一本岛道一二三不卡区 | 91黄色免费看 | 91免费版在线观看 | 亚洲综合在线一区二区 | 在线视频第一页 | 亚洲国产在 | 午夜一区二区三区在线观看 | 欧美日韩在线视频观看 | 亚洲综合色网站 | 国产欧美一区二区三区久久手机版 | 国产日韩欧美在线观看 | 91成人精品 | 午夜在线免费观看视频 | 久久久久国产精品 | 五月天激情综合网 | 五月天国产视频 |