一个更清洁的替代品正在通过
EJB
实例通过
Job
的
JobExecutionContext
准备时
工作
final JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put(MY_INTERFACE, myInterface);
final Job myJob =
JobBuilder.newJob(MyJob.class)
.setJobData(jobDataMap)
.build();
里面
Job#execute
final JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
final MyInterface myInterface = (MyInterface) jobDataMap.get(MY_INTERFACE);
石英
工作
实现不应该完全了解它在其中运行的javaee容器。从长远来看,这将简化更新代码/体系结构的过程。
还有,你的
工作
应该只关心它的唯一职责,而不是获取所需的依赖关系。
想想
JobDataMap
作为一种奇怪的
依赖注入
.