流動性のタスクリスナーおよびJavaサービス・タスク依存性注入問題

流動性のタスクリスナーの最近の使用に関連する質問と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的类=====================");
	}
}

おすすめ

転載: www.cnblogs.com/DF-Kyun/p/12669095.html