Activiti监听器注入问题及其解决

问题:在Activiti监听器中用@Autowirde注入的bean(比如我们自己写的service等)是null,注入不进去。
原因:Activiti监听器是交给Tomcat容器管理的,而@Autowirde注解是交给Spring容器管理的,tomcat自然是无法解析@Autowirde注解的,肯定是注入不进去的。
解决:把监听器也注成bean,交给spring管理,这样就可以随意注入我们需要的bean了。
步骤:1. 给监听器类加上@Component注解,把监听器交给spring管理。如图:

 (你以为这样就ok了?大错特错,重点是第2步)
 2. 在bpmn流程图上配置监听器时,用DelegateExpression(代理表达式),DelegateExpression中的变量名要和监听器类上注入的bean名一致。如图:

bpmn文件:

OK,你我的问题都解决了,终于可以在监听器中自由注入了,哈哈。 


版权声明:本文为weixin_42046751原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。