Не уверен, что это именно то, что вам нужно, но вы можете передать некоторые значения конфигурации в задание Quartz. Я полагаю, что в вашем случае вы могли бы воспользоваться уже установленным свойством jobDataAsMap
, например:
<property name="jobDataAsMap">
<map>
<entry key="schedulerTask" value-ref="schedulerTask" />
<entry key="param1" value="com.custom.package.ClassName"/>
</map>
</property>
Тогда вы сможете получить к нему доступ в своем фактическом коде Java вручную:
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
schedulerTask.printSchedulerMessage();
System.out.println(context.getJobDetail().getJobDataMap().getString("param1"));
}
Или используя волшебный подход Spring - определите свойство param1
с помощью getter / setter. Вы можете попытаться определить его с помощью типа java.lang.Class
и сделать это автоматически (Spring сделает это за вас):
private Class<?> param1;
// getter & setter
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
schedulerTask.printSchedulerMessage();
System.out.println("Class injected" + getParam1().getName());
}
Хотя я не проверял это.