[Activiti 6.x] 核心API基础
Activiti 6.x 继续讲解核心API基础
核心API介绍
springboot环境下不再以activiti.cfg.xml文件的形式配置,可在yml内配置,yml配置会在后文讲解。
RepositoryService:对流程定义进行管理。
RuntimeService:对流程实例的管理。
TaskService:对流程任务进行管理。
IdentityService:管理用户和用户组。
ManagementService:提供对activiti数据库的直接访问【一般不用】。
HistoryService:对流程的历史数据进行操作。
FormService:动态表单。
IdentityService
用户管理
先讲IdentityService,后续联合TaskService、RuntimeService实现并行网关demo。 新建用户【无法创建两个ID一样的用户】
/**新建用户*/
@Test
public void testUser(){
User user = identityService.newUser("ptm");
user.setFirstName("潘");
user.setLastName("天淼");
user.setEmail("1458689676@qq.com");
user.setPassword("123456");
//新建用户
identityService.saveUser(user);
}
一般用户信息图片啥的就别存在activiti里面了,自带的表应该是满足不了真实业务需求的。呐QAQ你看下面这表。建议的话是在identityService的基础上,以userid与新建的表关联起来。RBAC了解一下。
获取用户信息【更新用户信息请先获取用户信息对获取的user,set属性调用saveUser方法即可】
/**获取用户信息*/
@Test
public void searchUser(){
String userid ="ptm";
User user = identityService.createUserQuery()
.userId(userid).singleResult();
System.out.println("博主的名字:"+user.getFirstName()+user.getLastName());
System.out.println("博主的邮箱:"+user.getEmail());
System.out.println("呐-ID肯定是相等的:"+userid.equals(user.getId()));
System.out.println("测试密码:"+user.getPassword());
System.out.println("是否验证成功:"+identityService.checkPassword("ptm","123456"));
}
删除用户信息
/**删除用户信息*/
@Test
public void delUser(){
identityService.deleteUser("ptm");
}
如果需要用activiti的用户表,接口有如下方法
组管理
/**用户组管理*/
@Test
public void testGroup(){
String groupId ="HRPTM";
//创建用户组对象
Group group = identityService.newGroup(groupId);
group.setName("HR");
group.setType("assignment");
//保存用户组
identityService.saveGroup(group);
Group groupInfo = identityService.createGroupQuery()
.groupId(groupId)
.singleResult();
System.out.println("组的名字:"+groupInfo.getName());
System.out.println("组类别"+groupInfo.getType());
System.out.println("GroupId:"+groupInfo.getId());
// //删除用户组
// identityService.deleteGroup("HRPTM");
}
组的管理与用户管理类似,就直接一回杀了。执行结果如下:
Membership管理(用户对应组关系)
/**Membership管理*/
@Test
public void testMembership(){
//建立关联
identityService.createMembership("ptm","HRPTM");
//查询属于HRPTM用户组的用户
User user = identityService.createUserQuery()
.memberOfGroup("HRPTM")
.singleResult();
System.out.println("博主的名字:"+user.getFirstName()+user.getLastName());
System.out.println("博主的邮箱:"+user.getEmail());
System.out.println("userid"+user.getId());
System.out.println("测试密码:"+user.getPassword());
System.out.println("是否验证成功:"+identityService.checkPassword("ptm","123456"));
//查询用户所属组
Group group = identityService.createGroupQuery()
.groupMember("ptm")
.singleResult();
System.out.println("组的名字:"+group.getName());
System.out.println("组类别"+group.getType());
System.out.println("GroupId:"+group.getId());
}
另外测试的key用的都是普通的英文,如是正式项目建议UUID。
No Comments