亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

jBPM4與Spring整合的2種方式

系統(tǒng) 2019 0

要知道如何將jBPM4與Spring整合,可以先了解jBPM4的IOC容器,如果不了解的可以先看ronghao的這篇文章 http://www.iteye.com/topic/381607 ,是介紹jBPM4的IOC容器的。下面我們介紹jBPM與Spring整合的2種方式:
?? 第一種:手工將SessionFactory放入jBPM4中。
?? 第1步:更改jbpm.spring.default.cfg.xml配置文件,將下面的部分注釋掉

Xml代碼?
  1. <!-- ??
  2. ??? < hibernate-configuration > ??
  3. ????? < cfg ? resource = "jbpm.hibernate.cfg.xml" ? /> ??
  4. ??? </ hibernate-configuration > ??
  5. ??
  6. ??? < hibernate-session-factory ? /> ??
  7. ?-- > ??
      部分是在jBPM4中創(chuàng)建了sessionFactory,而我們只需要一個sessionFactory。既然要將jBPM4與Spring的整合,那就希望由Spring來統(tǒng)一管理sessionFactory和事務(wù),在Spring的配置文件中構(gòu)造一個sessionFactory。ProcessEngine是jBPM4的Facade模式,一切由它與外部交互, 
? 第2步:在Spring配置文件中寫一個bean:
    
Xml代碼
  1. < bean ? id = "processEngine" ? class = "com.family168.jbpm.ProcessEngineFactoryBean" > ??
  2. ???????? < property ? name = "sessionFactory" ? ref = "sessionFactory" /> ??
  3. ? </ bean > ??
      <bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">
        <property name="sessionFactory" ref="sessionFactory"/>
 </bean>
    


第3步:在ProcessFactoryBean中注入SessionFactory:

Java代碼?
        public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
  }
    


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

Java代碼?
      public void afterPropertiesSet() {
        SpringConfiguration cfg = new      SpringConfiguration(jbpmConfigurationLocation);
        cfg.setApplicationContext(applicationContext);

        cfg.setSessionFactory(sessionFactory);
        this.processEngine = cfg.buildProcessEngine();
    }
    


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

Java代碼?
       ProcessEngine processEngine = (ProcessEngine) ctx.getBean("processEngine");
    RepositoryService repositoryService = processEngine.getRepositoryService();。
    


第2種:獲得Hibernate的SessionFactory。
? 第1步:與第一種方式的第1步一樣。
? 第2步:更改jbpm.tx.spring.cfg.xml配置文件:
? 將?????
????

?
Xml代碼 復(fù)制代碼
  1. < spring-transaction-interceptor ? current = "true" ? /> ??
      <spring-transaction-interceptor current="true" />
    


? 然后將
??

Xml代碼 復(fù)制代碼
       <transaction/>
    <hibernate-session/>
    


? 改成

Xml代碼
       <hibernate-session current="true"/>
    


這部分修改是將jBPM4創(chuàng)建的spring事務(wù)和hibernate的session改成從當(dāng)前的ThreadLocal中獲得session和事務(wù)。
第3步:在Spring配置文件中寫bean,processEngine和template:

Xml代碼
      <bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
        <constructor-arg value="jbpm/jbpm.cfg.xml" />
    </bean>

    <bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />

    <bean id="jbpmTemplate" class="com.family168.jbpm.JbpmTemplate">
        <property name="processEngine" ref="processEngine"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>
    


processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并從SpringConfiguration的buildProcessEngine中獲得。
jbpmTemplate主要是控制事務(wù),在processEngine外面創(chuàng)建事務(wù),這樣使用的時候會先調(diào)用jbpmTemplate,再調(diào)用processEngine,否則它會說事務(wù)沒有啟動。在jbpmTemplate中注入processEngine:
???

Java代碼?
      public void setProcessEngine(ProcessEngine processEngine) {
        this.processEngine = processEngine;
    }
    


??? 這里我的理解是我們在上面已經(jīng)將事務(wù)改成從當(dāng)前的Threadlocal中獲得,所以jBPM4是必須當(dāng)前有事務(wù),如果我沒有創(chuàng)建事務(wù)的話,在使用processEngine時就會說事務(wù)沒有啟動。所以我們就封裝了一個jbpmTemplate,如果我的理解有誤還請大家指出。
?? 第1種整合方式我會提供一個例子,第2種整合方式之后可以看我們的jBPM-Side里的控制臺。

jBPM4與Spring整合的2種方式


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美夜夜操 | 狠狠色噜噜狠狠狠狠 | 四虎4hutv永久在线影院 | 欧美色久 | 99热久久这里只精品国产9 | 天天拍夜夜添久久精品中文 | 在线国产福利 | 最近中文字幕在线视频1 | 视频福利一区 | 国产在线原创剧情麻豆 | 日韩欧美亚洲国产高清在线 | 九九热视频精品在线 | 99热视热频这里只有精品 | 亚洲一区二区三区免费 | 一区二区三区四区免费视频 | 国产99精品一区二区三区免费 | 精品久久久久久国产 | 日本人成免费大片 | 国产二区在线播放 | 色综合久久综合欧美综合图片 | 天天干天天操天天 | 国产99在线播放免费 | 羞污影院 | 九九九九热 | 日本一区二区三区久久 | 91精品视频在线看 | 9热这里只有真品 | 国产大尺度福利视频在线 | 香蕉久久一区二区三区 | 天天搞天天搞 | 欧美日韩免费 | 国产精品久久亚洲不卡动漫 | 毛片大全免费观看 | 成人小视频在线观看 | 97福利视频在线观看 | 国产日产欧美精品一区二区三区 | 日本爱爱网 | 国产福利免费在线观看 | 久久久久久青草大香综合精品 | 国产亚洲精品久久久久久午夜 | 12345国产精品高清在线 |