首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JBPM4.4中嵌入自个儿的用户体系

2012-09-16 
JBPM4.4中嵌入自己的用户体系??? 很多时候,JBPM自己提供的用户系统是不够用的,这时候就要求我们自己去扩展

JBPM4.4中嵌入自己的用户体系

??? 很多时候,JBPM自己提供的用户系统是不够用的,这时候就要求我们自己去扩展自己的用户体系。JBPM允许外挂一个用户体系。

??? 如果想嵌入自己的用户体系,只需如下几步:

??? 一:创建MyUserImpl,MyGroupImpl,MyMembershipImpl三个类,分别实现接口User,Group。由于类MyMembershipImpl是独立的,因此没有必要继承或实现其他接口。

?? MyUserImpl 的主要代码:

?上面的代码是仿照JBPM默认的映射文件jbpm.identity.hbm.xml写的。这个文件可以在JBPM的源代码里面找到,导入jar包时,它被封装在jbpm.jar里面。映射文件配置好了之后,只需在hibernate的配置文件jbpm.hibernate.cfg.xml中加上一句话<mapping resource="en/estar/jbpm/identify/jbpm.myidentify.hbm.xml"/>就行了。当然,resource的路径根据实际情况而定。

?

??? 三:通过以上两步,就完成了由实体类到数据库的映射,也就是说,当你启动tomcat运行JBPM的时候,数据库里就会多出三张表:JBPM4_MyUser,JBPM4_MyGroup,JBPM4_MyMembership。虽然如此,但是这只是利用了hibernate的自动生成数据表的功能产生了三个表而已,JBPM凭什么知道我需要使用的是我新创建的这三张表,而不会去调用原来的那三张表呢?答案是,他不知道。

??? 所以我们要继续进行配置。找到jbpm的一个配置文件叫:jbpm.cfg.xml。在这个文件里面原来有一句话:

import resource="jbpm.identity.cfg.xml"。我们可以去查看jbpm.identity.cfg.xml 的实际内容,结果里面就一句话:? <transaction-context><identity-session /></transaction-context>。有了这句话,就相当于告诉了JBPM,它将会去调用JBPM自带的关于用户体系操作的一个接口IdentitySession。这个类的实现IdentitySessionImpl里就会默认去调用JBPM自带的用户关系管理的数据表。所以为了改变JBPM的这种习惯,我们就必须自己创建一个类,并实现接口IdentitySession。这样JBPM就会去调用我们自己的实现,而不会再去调用它自己的东东。要实现这个只需要把他的配置文件jbpm.identity.cfg.xml 的import resource="jbpm.identity.cfg.xml“注释掉,然后加上一句:

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

?这样就OK了。下面的任务就是去实现MesIdentitySessionImpl中的方法了。不过我认为,里边的方法没有必要全部实现,把几个find开头的方法实现了就行了,其他的诸如,创建用户,创建组,删除用户等等之类的,我们就没有必要实现了,必要的时候我们可以自己单独写方法实现,就不需要放到该类当中了。

?

?

1 楼 heweina2007 2011-03-29   请问嵌入自己的用户体系后,还会不会自动生成JBPM4_ID_MEMBERSHIP、JBPM4_ID_USER、JBPM4_ID_GROUP这三张表。我的还生成,不知道是否正确? 2 楼 eshore 2011-11-25   感谢博主,相当清晰地说明,新手学习了

热点排行