日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JBPM4.4中嵌入自己的用戶體系

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

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為海滄等服務(wù)建站,海滄等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為海滄企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

一:創(chuàng)建MyUserImpl,MyGroupImpl,MyMembershipImpl三個類,分別實現(xiàn)接口User,Group。由于類MyMembershipImpl是獨立的,因此沒有必要繼承或?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;//電話號碼   
  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. }  

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

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

XML代碼

 
 
 
  1. xml version="1.0"?>   
  2. >   
  3.    
  4.        
  5.            
  6.                
  7.          id>   
  8.          property>   
  9.          property>   
  10.          property>   
  11.          property>   
  12.          property>   
  13.          property>   
  14.      class>   
  15.        
  16.        
  17.            
  18.                 
  19.          id>   
  20.          property>   
  21.          property>   
  22.         
  23.                  column="parent"    
  24.                  class="en.estar.jbpm.identify.MyGroupImpl"  
  25.                  foreign-key="FK_GROUP_PARENT"/>   
  26.      class>   
  27.        
  28.        
  29.        
  30.            
  31.              
  32.          id>   
  33.         
  34.                      column="USER_"    
  35.                      class="en.estar.jbpm.identify.MyUserImpl"  
  36.                      foreign-key="FK_MEM_USER"/>   
  37.        
  38.         
  39.                      column="GROUP_"    
  40.                      class="en.estar.jbpm.identify.MyGroupImpl"  
  41.                      foreign-key="FK_MEM_GROUP"/>   
  42.        
  43.            
  44.    class>   
  45. hibernate-mapping>  

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

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

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

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

XML代碼

 
 
 
  1.    
  2.           
  3.          
  4.          object>   
  5. transaction-context>  

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


網(wǎng)站題目:JBPM4.4中嵌入自己的用戶體系
網(wǎng)站路徑:http://www.5511xx.com/article/djecjdh.html