activiti5.14 扩展用户自定义表

来源:互联网 发布:淘宝美工工作辛苦吗 编辑:程序博客网 时间:2024/05/26 20:23
在网上找了很多关于activiti扩展用户自定义表的文章,发现在5.14中不起作用,查看源码之后发现在用会话工厂中的返回类型改成了接口而不是原来的抽象类。1.CustomGroupManagerFactory 用户组会话工厂这边的返回类型要改成 GroupIdentityManager接口,之前的版本貌似是GroupEntityManager,因为在配置加载的时候是以这个为KEY值获得对应的工厂
import org.activiti.engine.impl.interceptor.Session;import org.activiti.engine.impl.interceptor.SessionFactory;import org.activiti.engine.impl.persistence.entity.GroupEntityManager;import org.activiti.engine.impl.persistence.entity.GroupIdentityManager;import org.springframework.beans.factory.annotation.Autowired;/** * 自定义的Activiti用户组会话工厂 */public class CustomGroupManagerFactory implements SessionFactory { private GroupEntityManager groupEntityManager;        @Autowired      public void setGroupEntityManager(GroupEntityManager groupEntityManager) {          this.groupEntityManager = groupEntityManager;      }        public Class<?> getSessionType() {          // 返回原始的GroupIdentityManager类型          return GroupIdentityManager.class;      }        public Session openSession() {          // 返回自定义的GroupEntityManager实例          return groupEntityManager;      }  }


2. CustomUserManagerFactory 自定义的Activiti用户会话工厂

import org.activiti.engine.impl.interceptor.Session;import org.activiti.engine.impl.interceptor.SessionFactory;import org.activiti.engine.impl.persistence.entity.UserEntityManager;import org.activiti.engine.impl.persistence.entity.UserIdentityManager;import org.springframework.beans.factory.annotation.Autowired;/** * 自定义的Activiti用户会话工厂 */public class CustomUserManagerFactory implements SessionFactory {private UserEntityManager userEntityManager;        @Autowired      public void setUserEntityManager(UserEntityManager userEntityManager) {          this.userEntityManager = userEntityManager;      }        public Class<?> getSessionType() {          // 返回原始的UserManager类型          return UserIdentityManager.class;      }        public Session openSession() {          // 返回自定义的UserManager实例          return userEntityManager;      }  }
  

3.下面是用户组合用户管理器只要在里面实现自己的增删改查就行了

import java.util.List;import java.util.Map;import org.activiti.engine.identity.Group;import org.activiti.engine.identity.GroupQuery;import org.activiti.engine.impl.GroupQueryImpl;import org.activiti.engine.impl.Page;import org.activiti.engine.impl.persistence.entity.GroupEntity;import org.activiti.engine.impl.persistence.entity.GroupEntityManager;/** * 自定义的Activiti用户组管理器 * */public class CustomGroupManager extends GroupEntityManager {    @Overridepublic Group createNewGroup(String groupId) {// TODO Auto-generated method stubreturn super.createNewGroup(groupId);}@Overridepublic void insertGroup(Group group) {// TODO Auto-generated method stubsuper.insertGroup(group);}@Overridepublic void updateGroup(GroupEntity updatedGroup) {// TODO Auto-generated method stubsuper.updateGroup(updatedGroup);}@Overridepublic void deleteGroup(String groupId) {// TODO Auto-generated method stubsuper.deleteGroup(groupId);}@Overridepublic GroupQuery createNewGroupQuery() {// TODO Auto-generated method stubreturn super.createNewGroupQuery();}@Overridepublic List<Group> findGroupByQueryCriteria(GroupQueryImpl query, Page page) {// TODO Auto-generated method stubreturn super.findGroupByQueryCriteria(query, page);}@Overridepublic long findGroupCountByQueryCriteria(GroupQueryImpl query) {// TODO Auto-generated method stubreturn super.findGroupCountByQueryCriteria(query);}@Overridepublic List<Group> findGroupsByUser(String userId) {// TODO Auto-generated method stubreturn super.findGroupsByUser(userId);}@Overridepublic List<Group> findGroupsByNativeQuery(Map<String, Object> parameterMap, int firstResult, int maxResults) {// TODO Auto-generated method stubreturn super.findGroupsByNativeQuery(parameterMap, firstResult, maxResults);}@Overridepublic long findGroupCountByNativeQuery(Map<String, Object> parameterMap) {// TODO Auto-generated method stubreturn super.findGroupCountByNativeQuery(parameterMap);}}

import java.util.List;import java.util.Map;import org.activiti.engine.identity.Group;import org.activiti.engine.identity.User;import org.activiti.engine.identity.UserQuery;import org.activiti.engine.impl.Page;import org.activiti.engine.impl.UserQueryImpl;import org.activiti.engine.impl.persistence.entity.IdentityInfoEntity;import org.activiti.engine.impl.persistence.entity.UserEntity;import org.activiti.engine.impl.persistence.entity.UserEntityManager;public class CustomUserManager extends UserEntityManager {@Overridepublic User createNewUser(String userId) {// TODO Auto-generated method stubreturn super.createNewUser(userId);}@Overridepublic void insertUser(User user) {// TODO Auto-generated method stubsuper.insertUser(user);}@Overridepublic void updateUser(UserEntity updatedUser) {// TODO Auto-generated method stubsuper.updateUser(updatedUser);}@Overridepublic UserEntity findUserById(String userId) {// TODO Auto-generated method stubreturn super.findUserById(userId);}@Overridepublic void deleteUser(String userId) {// TODO Auto-generated method stubsuper.deleteUser(userId);}@Overridepublic List<User> findUserByQueryCriteria(UserQueryImpl query, Page page) {// TODO Auto-generated method stubreturn super.findUserByQueryCriteria(query, page);}@Overridepublic long findUserCountByQueryCriteria(UserQueryImpl query) {// TODO Auto-generated method stubreturn super.findUserCountByQueryCriteria(query);}@Overridepublic List<Group> findGroupsByUser(String userId) {return super.findGroupsByUser(userId);}@Overridepublic UserQuery createNewUserQuery() {// TODO Auto-generated method stubreturn super.createNewUserQuery();}@Overridepublic IdentityInfoEntity findUserInfoByUserIdAndKey(String userId, String key) {// TODO Auto-generated method stubreturn super.findUserInfoByUserIdAndKey(userId, key);}@Overridepublic List<String> findUserInfoKeysByUserIdAndType(String userId, String type) {// TODO Auto-generated method stubreturn super.findUserInfoKeysByUserIdAndType(userId, type);}@Overridepublic Boolean checkPassword(String userId, String password) {// TODO Auto-generated method stubreturn super.checkPassword(userId, password);}@Overridepublic List<User> findPotentialStarterUsers(String proceDefId) {// TODO Auto-generated method stubreturn super.findPotentialStarterUsers(proceDefId);}@Overridepublic List<User> findUsersByNativeQuery(Map<String, Object> parameterMap, int firstResult, int maxResults) {// TODO Auto-generated method stubreturn super.findUsersByNativeQuery(parameterMap, firstResult, maxResults);}@Overridepublic long findUserCountByNativeQuery(Map<String, Object> parameterMap) {// TODO Auto-generated method stubreturn super.findUserCountByNativeQuery(parameterMap);}}

4.最后是配置文件

<!-- 创建一个流程引擎的配置对象 --><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><!--这里是数据源的指定 指向你自己的dataSource --><property name="dataSource" ref="dataSource" /><property name="transactionManager" ref="transactionManager" /><!-- 设置数据库schema的更新方式 --><property name="databaseSchemaUpdate" value="true" /><!-- 是否启动jobExecutor --><property name="jobExecutorActivate" value="false" /><property name="activityFontName" value="宋体" /><property name="labelFontName" value="宋体" /><!-- 自动部署流程 --><property name="deploymentResources"><list><value>classpath*:/diagrams/*</value></list></property><property name="mailServerHost" value="smtp.xxx.com" /><property name="mailServerPort" value="25" /><property name="mailServerDefaultFrom" value="xxx@xxx.com" /><property name="mailServerUsername" value="xxx@xx.com" /><property name="mailServerPassword" value="xxxx" /><!-- 配置自定义用户 --><property name="customSessionFactories"> <list>  <bean class="com.yum.amp2.workflow.util.CustomGroupManagerFactory" > <property name="groupEntityManager"> <bean class="com.yum.amp2.workflow.util.CustomGroupManager"></bean> </property> </bean> <bean class="com.yum.amp2.workflow.util.CustomUserManagerFactory" > <property  name="userEntityManager"> <bean id="userEntityManager" class="com.yum.amp2.workflow.util.CustomUserManager"></bean> </property> </bean></list></property></bean>



0 0
原创粉丝点击