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

JBPM4.4中嵌入自己的用戶體系

開發(fā) 后端
很多時(shí)候,JBPM自己提供的用戶系統(tǒng)是不夠用的,這時(shí)候就要求我們自己去擴(kuò)展自己的用戶體系。JBPM允許外掛一個(gè)用戶體系。

很多時(shí)候,JBPM自己提供的用戶系統(tǒng)是不夠用的,這時(shí)候就要求我們自己去擴(kuò)展自己的用戶體系。JBPM允許外掛一個(gè)用戶體系。

如果想嵌入自己的用戶體系,只需如下幾步:

一:創(chuàng)建MyUserImpl,MyGroupImpl,MyMembershipImpl三個(gè)類,分別實(shí)現(xiàn)接口User,Group。由于類MyMembershipImpl是獨(dú)立的,因此沒有必要繼承或?qū)崿F(xiàn)其他接口。

MyUserImpl 的主要代碼:

Java代碼

 

 

  1. public class MyUserImpl implements Serializable, User {     
  2.     
  3.     private static final long serialVersionUID = 1L;     
  4.     private long dbid;     
  5.     private String id;     
  6.     private String username;//用戶名     
  7.     private String password;//密碼     
  8.     private String sex;//性別     
  9.     private int age;//年齡     
  10.     private String tel;//電話號(hào)碼     
  11.              
  12.     public String getUsername() {     
  13.         return username;     
  14.     }     
  15.     public long getDbid() {     
  16.         return dbid;     
  17.     }     
  18.                 .     
  19.                 .//省略部分setter和getter方法     
  20.                 .     
  21.     public String getId() {     
  22.         return this.id;     
  23.     }     
  24.     
  25. }    

 

MyGroupImpl 的主要代碼:

Java代碼

 

 

  1. public class MyGroupImpl implements Serializable, Group {     
  2.     
  3.     private static final long serialVersionUID = 1L;     
  4.          
  5.     private long dbid;     
  6.     private String groupName;     
  7.     private String groupType;     
  8.     private MyGroupImpl parentGroup;     
  9.          
  10.     public long getDbid() {     
  11.         return dbid;     
  12.     }     
  13.     public void setDbid(long dbid) {     
  14.         this.dbid = dbid;     
  15.     }     
  16.     
  17.                 //省略部分gettrer和setter方法     
  18.     
  19.     public String getType() {     
  20.         return null;     
  21.     }     
  22.     
  23. }    

 

MyMembershipImpl 的主要代碼:

Java代碼

 

 

  1. public class MyMembershipImpl implements Serializable {     
  2.     
  3.     private static final long serialVersionUID = 1L;     
  4.          
  5.     protected long dbid;     
  6.     protected User user;     
  7.                 protected Group group;     
  8.                 protected String role;     
  9.         
  10.     public User getUser() {     
  11.         return user;     
  12.     }     
  13.     public void setUser(User user) {     
  14.         this.user = user;     
  15.     }     
  16.     public Group getGroup() {     
  17.         return group;     
  18.     }     
  19.     public void setGroup(Group group) {     
  20.         this.group = group;     
  21.     }     
  22.     public String getRole() {     
  23.         return role;     
  24.     }     
  25.     public void setRole(String role) {     
  26.         this.role = role;     
  27.     }     
  28.     public long getDbid() {     
  29.         return dbid;     
  30.     }     
  31.     public void setDbid(long dbid) {     
  32.         this.dbid = dbid;     
  33.     }     
  34. }    

 

當(dāng)然,上面三個(gè)類里面的字段可能不滿足實(shí)際需求,但是沒有關(guān)系,我們可以添加新的字段。

二:第一步完成了,那么就開始第二步。第二步的主要任務(wù)就是將這些類映射到數(shù)據(jù)庫里。由于JBPM的持久層的操作采用的是Hibernate進(jìn)行的。所以我們必須編寫一個(gè)Hibernate的映射文件將實(shí)體類映射到數(shù)據(jù)庫。這個(gè)映射文件可以寫在任何位置,但一般建議寫到ClassPath路徑下面。具體的代碼如下:

XML代碼

 

  1. xml version="1.0"?>     
  2. >     
  3. <hibernate-mapping>     
  4.     <class name="en.estar.jbpm.identify.MyUserImpl" table="JBPM4_MyUser">     
  5.         <id name="dbid" column="id">     
  6.             <generator class="assigned" />     
  7.         id>     
  8.         <property name="id" column="userId">property>     
  9.         <property name="username">property>     
  10.         <property name="password">property>     
  11.         <property name="age">property>     
  12.         <property name="sex">property>     
  13.         <property name="tel">property>     
  14.     class>     
  15.          
  16.     <class name="en.estar.jbpm.identify.MyGroupImpl" table="JBPM4_MyGroup">     
  17.         <id name="dbid" column="id">     
  18.              <generator class="assigned" />     
  19.         id>     
  20.         <property name="groupName">property>     
  21.         <property name="groupType">property>     
  22.         <many-to-one name="parentGroup"    
  23.                  column="parent"      
  24.                  class="en.estar.jbpm.identify.MyGroupImpl"    
  25.                  foreign-key="FK_GROUP_PARENT"/>     
  26.     class>     
  27.          
  28.          
  29.     <class name="en.estar.jbpm.identify.MyMembershipImpl" table="JBPM4_MyMembership">     
  30.         <id name="dbid" column="id">     
  31.           <generator class="assigned"/>     
  32.         id>     
  33.         <many-to-one name="user"    
  34.                      column="USER_"      
  35.                      class="en.estar.jbpm.identify.MyUserImpl"    
  36.                      foreign-key="FK_MEM_USER"/>     
  37.          
  38.         <many-to-one name="group"    
  39.                      column="GROUP_"      
  40.                      class="en.estar.jbpm.identify.MyGroupImpl"    
  41.                      foreign-key="FK_MEM_GROUP"/>     
  42.          
  43.         <property name="role" column="name" />     
  44.   class>     
  45. hibernate-mapping>    

 

 

 

 

 

 

 

上面的代碼是仿照J(rèn)BPM默認(rèn)的映射文件jbpm.identity.hbm.xml寫的。這個(gè)文件可以在JBPM的源代碼里面找到,導(dǎo)入jar包時(shí),它被封裝在jbpm.jar里面。映射文件配置好了之后,只需在hibernate的配置文件jbpm.hibernate.cfg.xml中加上一句話就行了。當(dāng)然,resource的路徑根據(jù)實(shí)際情況而定。

三:通過以上兩步,就完成了由實(shí)體類到數(shù)據(jù)庫的映射,也就是說,當(dāng)你啟動(dòng)tomcat運(yùn)行JBPM的時(shí)候,數(shù)據(jù)庫里就會(huì)多出三張表:JBPM4_MyUser,JBPM4_MyGroup,JBPM4_MyMembership。雖然如此,但是這只是利用了hibernate的自動(dòng)生成數(shù)據(jù)表的功能產(chǎn)生了三個(gè)表而已,JBPM憑什么知道我需要使用的是我新創(chuàng)建的這三張表,而不會(huì)去調(diào)用原來的那三張表呢?答案是,他不知道。

所以我們要繼續(xù)進(jìn)行配置。找到j(luò)bpm的一個(gè)配置文件叫:jbpm.cfg.xml。在這個(gè)文件里面原來有一句話:

import resource="jbpm.identity.cfg.xml"。我們可以去查看jbpm.identity.cfg.xml 的實(shí)際內(nèi)容,結(jié)果里面就一句話: 。有了這句話,就相當(dāng)于告訴了JBPM,它將會(huì)去調(diào)用JBPM自帶的關(guān)于用戶體系操作的一個(gè)接口IdentitySession。這個(gè)類的實(shí)現(xiàn)IdentitySessionImpl里就會(huì)默認(rèn)去調(diào)用JBPM自帶的用戶關(guān)系管理的數(shù)據(jù)表。所以為了改變JBPM的這種習(xí)慣,我們就必須自己創(chuàng)建一個(gè)類,并實(shí)現(xiàn)接口IdentitySession。這樣JBPM就會(huì)去調(diào)用我們自己的實(shí)現(xiàn),而不會(huì)再去調(diào)用它自己的東東。要實(shí)現(xiàn)這個(gè)只需要把他的配置文件jbpm.identity.cfg.xml 的import resource="jbpm.identity.cfg.xml“注釋掉,然后加上一句:

XML代碼

 

  1. <transaction-context>     
  2.        <hibernate-session current="true"/>     
  3.       <object  class="en.estar.jbpm.identify.MesIdentitySessionImpl">     
  4.         object>     
  5. transaction-context>    

 

這樣就OK了。下面的任務(wù)就是去實(shí)現(xiàn)MesIdentitySessionImpl中的方法了。不過我認(rèn)為,里邊的方法沒有必要全部實(shí)現(xiàn),把幾個(gè)find開頭的方法實(shí)現(xiàn)了就行了,其他的諸如,創(chuàng)建用戶,創(chuàng)建組,刪除用戶等等之類的,我們就沒有必要實(shí)現(xiàn)了,必要的時(shí)候我們可以自己單獨(dú)寫方法實(shí)現(xiàn),就不需要放到該類當(dāng)中了。

【編輯推薦】

  1. 使用JBoss jBPM實(shí)現(xiàn)流程訪問和執(zhí)行的授權(quán)
  2. jBPM實(shí)現(xiàn)高級(jí)交互模式詳解
  3. Java工作流管理系統(tǒng)jBPM 4.3發(fā)布 支持BPMN 2.0
  4. jBPM4.1發(fā)布 改進(jìn)多項(xiàng)Tomcat支持
責(zé)任編輯:金賀 來源: JavaEye博客
相關(guān)推薦

2010-07-20 16:38:28

jBPMjBPM 4.4jBPM 4.4下載

2009-06-11 13:53:35

jBPM用戶指南

2009-06-23 15:49:00

Liferay Por

2016-12-29 10:32:06

2009-06-11 13:43:21

jBPM用戶指南jBPM 4.0

2009-06-11 14:00:34

jBPM用戶指南jBPM范例

2013-11-22 11:07:58

Android 4.4瀏覽器Chrome

2014-09-02 09:45:57

Linux

2009-06-24 14:57:03

jBPM4架構(gòu)

2015-07-16 10:15:44

web前端知識(shí)體系

2009-02-17 23:51:57

Linux程序登錄界面

2010-12-29 11:36:57

MozillaFirefox用戶密碼

2021-07-16 11:00:40

Django用戶模型Python

2009-06-23 15:30:20

jBPMMySQL

2020-10-26 08:34:18

知識(shí)體系普適性

2022-06-04 07:21:19

requireJSNode.js

2009-06-24 16:23:29

jBPM 4.0配置

2009-06-25 16:36:31

JBPM流程圖

2020-10-27 08:47:54

防御體系安全架構(gòu) 數(shù)據(jù)安全

2017-07-25 17:34:54

大數(shù)據(jù)機(jī)器學(xué)習(xí)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产综合欧美 | 亚洲免费成人av | 四虎永久免费地址 | 亚洲激情在线观看 | 国产精品视频综合 | 成人深夜福利 | 国产在线观 | 99这里只有精品视频 | 一区二区三区四区在线 | 在线黄色影院 | 日本亚洲一区 | 久久久久久亚洲精品 | 九九色综合 | 日韩和的一区二在线 | 二区在线观看 | 大乳boobs巨大吃奶挤奶 | www.色综合| 国产一区二区欧美 | 亚洲欧洲在线看 | 区一区二区三在线观看 | 国产高清免费 | 男人天堂网址 | 欧美一级片在线看 | 久久亚洲免费 | 99精品欧美一区二区三区 | 天天碰日日操 | 国产成人久久精品一区二区三区 | 午夜爽爽爽男女免费观看影院 | 欧美精品一区二区三区在线 | 亚洲一区二区三区四区五区午夜 | 日韩视频在线观看 | 成人欧美一区二区三区黑人孕妇 | 国产综合久久 | 在线观看视频亚洲 | 日韩精品一区二区三区高清免费 | 精品人伦一区二区三区蜜桃网站 | 99精品欧美一区二区三区综合在线 | 日韩国产精品一区二区三区 | 中文字幕av在线播放 | 国产在线观看一区二区三区 | 亚洲欧美一区二区三区国产精品 |