activiti中实现TaskListener注入Spring的bean以及去除自带权限问题
实现TaskListener监听器,使用默认生成的代码,是无法在监听器里面注入我们需要的bean(@Autowired和@Resource获取到的bean都是null),这里做下笔记。
第一步
此时需要把bpmn中这样设置,sendDocumentStartListener是监听器的类名(在这里首字母要小写)
<userTask activiti:assignee="${assignee}" activiti:exclusive="true" id="_3" name="order_verify_1">
<extensionElements>
<activiti:taskListener event="create" delegateExpression="${taskListenerImp}" />
</extensionElements>
</userTask>
第二步
监听器里要这么写(注意要加上@Component注解)
复制代码
@Component
public class TaskListenerImp implements TaskListener , JavaDelegate {
@Autowired
RuntimeService runtimeservice;
@Override
public void notify(DelegateTask delegateTask) {
System.out.println(runtimeservice);
}
@Override
public void execute(DelegateExecution var1){
}
}
复制代码
此时就可以注入Spring的bean了
2、activiti7+springboot 关闭禁用springsecurity
Spring Boot v2.1.7.RELEASE
Spring v5.1.4.RELEASE
Activiti 7.1.0.M3.1
@SpringBootApplication(
exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
}
)
亲测可用
完整pom配置
<!-- activiti工作流 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
<version>7.0.0.SR1</version>
</dependency>