博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Activiti5.15.1 自定义用户、组(User,Group)实现
阅读量:4884 次
发布时间:2019-06-11

本文共 3909 字,大约阅读时间需要 13 分钟。

基于Activiti5.15.1 自定义用户、组(User,Group)实现

     本人刚接触Activiti,最近工作中需要将Activiti中原有的用户,组(ACT_ID_USER,ACT_ID_GROUP,ACT_ID_MEMBERSHIP)表替换为公司已有的相关表。查看了及相关文章。今天有空整理一下。以帮助后续有此需要的初学者。

 

自定义Group,User工厂类,实现SessionFactory接口

1)CustomGroupEntityManagerFactory

 

@Servicepublic class CustomGroupEntityManagerFactory implements SessionFactory {    private CustomGroupEntityManager customGroupEntityManager;    @Override    public Class
getSessionType() {     //注意此处必须为Activiti原生的类,否则自定义类不会生效 return GroupIdentityManager.class; } @Override public Session openSession() { return customGroupEntityManager; } @Autowired public void setCustomGroupEntityManager(CustomGroupEntityManager customGroupEntityManager) { this.customGroupEntityManager = customGroupEntityManager; }}

 

2)CustomUserEntityManagerFactory

@Servicepublic class CustomUserEntityManagerFactory implements SessionFactory {    private CustomUserEntityManager customUserEntityManager;    @Override    public Class
getSessionType() { //注意此处也必须为Activiti原生类 return UserIdentityManager.class; } @Override public Session openSession() { return customUserEntityManager; } @Autowired public void setCustomUserEntityManager(CustomUserEntityManager customUserEntityManager) { this.customUserEntityManager = customUserEntityManager; }}

3)CustomGroupEntityManager

1 @Component 2 public class CustomGroupEntityManager extends GroupEntityManager { 3     private static final Log logger = LogFactory 4             .getLog(CustomGroupEntityManager.class); 5  6     @Autowired 7     private UserMapper userMapper;//用于查询实际业务中用户表、角色等表 8  9 10     @Override11     public List
findGroupsByUser(final String userCode) {12 if (userCode == null)13 return null;14 15 List
bGroupList = userMapper.getGroupByUserName(userCode);16 17 List
gs = new java.util.ArrayList<>();18 GroupEntity g;19 String roleId;20 String activitRole;21 for (Role bGroup : bGroupList) {22 g = new GroupEntity();23 g.setRevision(1);24 g.setType("assignment");25 roleId = String.valueOf(bGroup.getRoleID());26 activitRole = bindGroupWithRole.get(roleId);//此处只是根据RoleId获取RoleCode, 因实际表中无RoleCode字段,暂且如此实际,此行可注释掉27 g.setId(activitRole != null ? activitRole : roleId);28 g.setName(bGroup.getRoleName());29 gs.add(g);30 }31 return gs;32 }33 }

4)CustomUserEntityManagerFactory

@Componentpublic class CustomUserEntityManager extends UserEntityManager {    private static final Log logger = LogFactory.getLog(CustomUserEntityManager.class);    @Autowired    private UserMapper userMapper;    @Override    public UserEntity findUserById(String userId) {        UserEntity userEntity = new UserEntity();        com.jimubox.transformers.model.user.User cue = userMapper.getUserByUserName(userId);        ActivitiUtils.toActivitiUser(cue);        return userEntity;    }    @Override    public List
findGroupsByUser(final String userCode) { if (userCode == null) return null; List
groupIds = userMapper.getGroupIdsByUserName(userCode); List
gs = null; gs = Utils.toActivitiGroups(groupIds); return gs; } }

5)applicationContext.xml

 

 

转载于:https://www.cnblogs.com/tonyspark/p/3868521.html

你可能感兴趣的文章
iOS/Swift Tips 1
查看>>
Python中如何使用boolean类型的数据
查看>>
Class.forname的含义,以及与newInstance函数调用的关系和区别
查看>>
消除unchecked cast Warning
查看>>
Daily Scrum M2 11-2
查看>>
python 爬虫库安装
查看>>
微信小程序 wx.request
查看>>
再读设计模式七原则
查看>>
Java E-mail Client with GUI
查看>>
uboot中的命令解析
查看>>
Android页面之间进行数据回传
查看>>
数的全排列问题
查看>>
51Nod 1095 Anigram单词 | Hash
查看>>
(五)jdk8学习心得之默认方法
查看>>
PHP与ajax,无刷新表单提交
查看>>
矩阵快速幂 -- 兔子繁殖(也就是斐波那契数列啦)
查看>>
Django content_type 简介及其应用
查看>>
poj 1222 EXTENDED LIGHTS OUT
查看>>
qq直聊(1679148947为账号,可以更改)
查看>>
机器学习/深度学习常用资源
查看>>