自定义Activiti的用户群组表
简述 Activiti工作流引擎本身配套了包括 User、Group 的Identify模块,但是实际上公司内部各个部门关系、领导下级等关系都很复杂,Activiti自身的id模块就显得有些弱了。 有关自定义Activiti用户群组表的具体方式有三种, 本文只详细介绍第二种 : 方案 一 :通过数据推送方式同步数据到引擎的身份表,需要把数据备份到引擎的身份表或者公司有平台或者WebService推送用户数据的推荐使用 方案 二 :自定义SessionFactory,非侵入式替换接口实现,对于公司内部有统一身份访问接口的推荐使用 方案 三 :不需要编写Java代码,只需要创建同名视图即可 为何自定义SessionFactory 引擎内部与数据库交互使用的是MyBatis,Activiti的每一张表都有一个对应的XxxEntityManager(实体管理类,有接口和实现类)和XxxEntityManagerFactory(实体管理工厂类)。 引擎的7个Service接口在需要CRUD实体时会根据接口获取注册的实体管理器实现类(初始化引擎时引擎会使用Map对象维护两者的映射关系),而 引擎允许我们自己注册实体管理器实现类 ,查看源码后可以知道有关Identity操作的两个接口分别为:UserIdentityManager和GroupIdentityManager。 例如下图: