spring + activiti 实现使用自己的user表和role表来管理流程任务
2017-12-06 17:23
459 查看
企业级activiti应用中,企业都有自己的用户表和权限表之类的,在使用activiti时,一般都不会用到activiti自带的用户表act_id_user和组表act_id_group,其实就是用户和权限差不多,其实实现起来也很简单,重写GroupEntityManager,UserEntityManager中的一下方法就可以了,当然,这些还需要spring扫描注入;下班就直接上代码实现:
(1)创建两个工厂
CustomGroupEntityManagerFactory.java
CustomUserEntityManagerFactory.java
工厂是用来创建user,和group管理对象的,下面是两个管理对象的代码
CustomUserEntityManager.java
CustomGroupEntityManager.java
spring启动时注入
这只是一个简单的实现方法,处理不是很好,如果你有更好的方法,
4000
你也可以写博客分享给我一起学习学习,哈哈,
(1)创建两个工厂
CustomGroupEntityManagerFactory.java
@Service public 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; }
CustomUserEntityManagerFactory.java
@Service public 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; }
工厂是用来创建user,和group管理对象的,下面是两个管理对象的代码
CustomUserEntityManager.java
@Component public class CustomUserEntityManager extends UserEntityManager { @Resource private BackendUserMapper backendUserMapper; @Resource private BackendRoleMapper backendRoleMapper; @Override public List<Group> findGroupsByUser(String userId) { Long id = Long.valueOf(userId); if (StringUtils.isBlank(userId)) { return null; } List<BackendRole> backendRoles = backendRoleMapper.queryBackendRoleByUserId(id); List<Group> groups = new ArrayList<Group>(); GroupEntity groupEntity = null; for (BackendRole backendRole : backendRoles) { groupEntity = new GroupEntity(); groupEntity.setRevision(1); groupEntity.setType("assignment"); groupEntity.setName(backendRole.getEnName()); groups.add(groupEntity); } return groups; } @Override public User findUserById(String userId) { BackendUser backendUser = backendUserMapper.selectByPrimaryKey(Long.valueOf(userId)); UserEntity userEntity = new UserEntity(); userEntity.setId(String.valueOf(backendUser.getId())); return userEntity; }
CustomGroupEntityManager.java
@Component public class CustomGroupEntityManager extends GroupEntityManager { @Resource private BackendRoleMapper backendRoleMapper; @Override public List<Group> findGroupsByUser(String userId) { Long id = Long.valueOf(userId); if (StringUtils.isBlank(userId)) { return null; } List<BackendRole> backendRoles = backendRoleMapper.queryBackendRoleByUserId(id); List<Group> groups = new ArrayList<Group>(); GroupEntity groupEntity = null; for (BackendRole backendRole : backendRoles) { groupEntity = new GroupEntity(); groupEntity.setRevision(1); groupEntity.setType("assignment"); groupEntity.setName(backendRole.getEnName()); groups.add(groupEntity); } return groups; }
spring启动时注入
这只是一个简单的实现方法,处理不是很好,如果你有更好的方法,
4000
你也可以写博客分享给我一起学习学习,哈哈,
相关文章推荐
- spring中使用quarts实现任务定制与管理
- JAVAWEB开发之工作流详解(二)——Activiti核心API的使用(流程定义和流程实例的管理、流程变量、监听器...)以及与Spring的集成
- 使用Spring来实现任务计划服务三:集成quartz任务调度框架
- 使用spring实现事务管理(@transactional)的遇到的两个异常:java.lang.noclassdeffounderror:org/objectweb.asm
- 使用spring quartz实现定时任务
- spring3中使用注解方式实现定时器调度任务
- Spring学习笔记(16)----使用Spring配置文件实现事务管理
- 使用Spring配置文件实现事务管理
- 使用自己的jdbc类,使用spring的事务管理.自己的类里面不依赖spring框架.
- 使用Spring3+Quartz实现定时任务
- 在Spring中使用JDK定时器实现调度任务
- 使用Java并发包线程池和XML实现定时任务动态配置和管理
- Spring使用Quartz调度器 实现时间点任务(Spring in Action中文版)
- 使用git管理自己的代码--简单使用流程
- 使用 Spring 实现定时器任务,定时统计汇总
- 使用Spring 2.0 新特性实现声明式事务管理-基于Annotation
- spring使用Quartz实现定时任务
- 使用Spring来实现任务计划服务一:继承java.util.TimerTask
- Spring中使用quartz插件实现定时任务
- 使用Spring来实现任务计划服务二:不继承java.util.TimerTask