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

jBPM4與Spring整合的2種方式

系統 1720 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中創建了sessionFactory,而我們只需要一個sessionFactory。既然要將jBPM4與Spring的整合,那就希望由Spring來統一管理sessionFactory和事務,在Spring的配置文件中構造一個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中創建一個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代碼 復制代碼
  1. < spring-transaction-interceptor ? current = "true" ? /> ??
      <spring-transaction-interceptor current="true" />
    


? 然后將
??

Xml代碼 復制代碼
       <transaction/>
    <hibernate-session/>
    


? 改成

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


這部分修改是將jBPM4創建的spring事務和hibernate的session改成從當前的ThreadLocal中獲得session和事務。
第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主要是控制事務,在processEngine外面創建事務,這樣使用的時候會先調用jbpmTemplate,再調用processEngine,否則它會說事務沒有啟動。在jbpmTemplate中注入processEngine:
???

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


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

jBPM4與Spring整合的2種方式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本爱爱片 | 亚洲高清一区二区三区久久 | 色综合久久伊人 | 亚洲成人综合在线 | 伊人狠狠丁香婷婷综合色 | 国产欧美精品一区二区色综合 | 91尤物国产尤物福利在线 | 九九综合视频 | 亚洲精品一区久久狠狠欧美 | 久久精品免费一区二区三区 | 日本热久久 | 91成人午夜在线精品 | 成人国产欧美精品一区二区 | 久久国产高清字幕中文 | 国产成人一区二区三区视频免费 | 九九这里有精品 | 久久精品国产国产 | 欧美18videosex灌满| 亚洲欧美卡通成人制服动漫 | 8090碰成年女人免费碰碰尤物 | 色婷婷色| 99精品视频在线 | 99色这里只有精品 | 日韩毛片免费观看 | 91精品免费久久久久久久久 | 青草香蕉精品视频在线观看 | 青青草国产97免久久费观看 | 国产一区二区亚洲精品 | 久久精品视频网 | 日本成本人在线观看免费视频 | 5060午夜一级毛片 | 精产网红自拍在线 | 日本护士a做爰免费观看 | www国产精品com | 黄色一级网站 | 欧美丰满大乳大屁股毛片 | 国产综合精品一区二区 | 欧美精品国产综合久久 | 伊人精品影院一本到欧美 | 亚洲一区二区三区在线播放 | 久久女 |