流動性のタスクリスナーの最近の使用に関連する質問とJavaサービスタスクを記録
タスクのリスナー
TaskListenerは主にusertaskの状況を監視するために、4があるイベントイベントをリッスン:
作成作成
割り当てアサイン人
の完全な完全な
削除します
XML:
<userTask id="USERTASK" name="USERTASK" >
<extensionElements>
<activiti:taskListener event="complete" class="com.github.flowable.delegate.MyListener"/>
</extensionElements>
</userTask>
コード:
public class MyListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
System.out.println("===========执行监听器============");
}
}
、春の依存性注入がある場合に、それがGroovyとJavaはと混合エンジニアリングで使用されているため、プロセスエンジンが始動されたときに少ない、それが見れるべきしまいます、初期の依存性の注入は、完了していない、という問題があるでしょうこの問題は存在しています
依存性注入
ここでのApplicationContextインタフェースApplicationContextAwareを取得する一例として、他の方法によって解決さ
@Component
public class MyListener implements TaskListener, ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
applicationContext = arg0;
}
@Override
public void notify(DelegateTask delegateTask) {
String processInsId = delegateTask.getProcessInstanceId();
MyService myService = (MyService) applicationContext.getBean("myService");
// TODO 执行service方法
System.out.println("==========执行监听器======");
}
}
Javaサービス・ミッション
同様にJavaサービス・タスクは、問題がある
のxml:
<serviceTask id="classservicetask" name="class方式" flowable:class="com.github.flowable.delegate.ClassImplementsJavaDelegate">
</serviceTask>
コード:
@Component
public class ClassImplementsJavaDelegate implements JavaDelegate, ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
applicationContext = arg0;
}
public void execute(DelegateExecution execution) {
String processInsId = execution.getProcessInstanceId();
MyService myService = (MyService) applicationContext.getBean("myService");
System.out.println("=====================指定实现了JavaDelegate的类=====================");
}
}