spring 式言語を使用してジョブ ID を取得したい。試してみ#{jobExecutionContext[jobId]}
ましたが、うまくいきません。
質問する
6768 次
4 に答える
4
SpEL だけを使用すると、ジョブ ID にアクセスする方法がありません。JobExecutionListener を使用して executionContext に追加すると、試していることで利用できるようになります。
于 2013-06-17T17:20:05.630 に答える
3
実際の例は次のようになります。JobExecutionListener クラスは JobExecution にアクセスでき、jobId を executionContext にコピーします。
public class JobIdToContextExecutionListener implements JobExecutionListener {
public void beforeJob(JobExecution jobExecution) {
long jobId = jobExecution.getJobId();
jobExecution.getExecutionContext().put("jobId",jobId);
}
..
}
春のコンテキストでは、次のようにSpELを介してjobIdを参照できます
#{stepExecution.jobExecution.jobId}
また
#{jobExecutionContext.jobId}
于 2014-09-18T08:59:23.580 に答える
1
#{stepExecution.jobExecution.id}
または#{stepExecution.jobExecutionId}
動作するはずです。
StepContext は、SpEL 式を介した遅延バインディングのために StepExecution へのアクセスを提供します。
于 2015-01-14T22:37:43.223 に答える