使用Spring 3.2和Quartz 1.8。我已按如下方式配置org.springframework.scheduling.quartz.JobDetailBean
:
<bean id="a" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.MyJob" />
...
</bean>
我想更改此配置,以便jobClass引用bean实例,以便我可以在bean上设置一些属性:
<bean id="b" class"com.MyJob">
<constructor-arg name="arg" value="1"/>
</bean>
<bean id="a" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" ref="b" />
...
</bean>
使用此配置启动应用时,我会
org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'com.MyJob' to required type 'java.lang.Class' for property 'jobClass'.
为什么?我认为这是因为jobClass属性需要一个类而不是实例,所以我该如何解决这个问题呢?
答案 0 :(得分:0)
找到解决方案。您可以将一些属性注入jobDataAsMap,然后将它们注入到jobClass中的setter中(或者可以从jobClass中的JobExecutionContext.jobDetail以编程方式检索)。
li