我的项目有一个Quartz调度器,我将JobDetailBean设置为
<bean id="deadlineFailureChecker" class="info.release.scheduler.DeadlineFailureChecker" />
<bean id="workingHourPerDayUpdater" class="info.release.scheduler.WorkingHourPerDayUpdater" />
<bean name="scheduledJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="info.release.scheduler.ScheduledJob" />
<property name="jobDataAsMap">
<map>
<entry key="deadlineFailureChecker" value-ref="deadlineFailureChecker" />
<entry key="workingHourPerDayUpdater" value-ref="workingHourPerDayUpdater" />
</map>
</property>
</bean>现在,正如我想要将属性值传递给info.release.scheduler.ScheduledJob一样,我做到了:
<bean id="scheduledJobBean" class="info.release.scheduler.ScheduledJob">
<property name="afrodite" ref="afrodite" />
</bean>
<bean name="scheduledJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<bean factory-bean="scheduledJobBean" factory-method="getClass"></bean>
</property>
<property name="jobDataAsMap">
<map>
<entry key="deadlineFailureChecker" value-ref="deadlineFailureChecker" />
<entry key="workingHourPerDayUpdater" value-ref="workingHourPerDayUpdater" />
</map>
</property>
</bean>但是下面的System.out.println打印的是null
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
System.out.println("============================================="+this.afrodite);
}此方法属于info.release.scheduler.ScheduledJob extends QuartzJobBean。
我还做了一个实验,我设置
<bean id="scheduledJobBean" class="info.release.scheduler.ScheduledJob">
<property name="afrodite" ref="afrodite" />
</bean> 至
<bean id="scheduledJobBean" class="info.release.scheduler.ScheduledJob" init-method="init">
<property name="afrodite" ref="afrodite" />
</bean>和
public void init() {
System.out.println("============================================="+this.afrodite);
}在这个初始化中,System.out.println打印的不是null,而是值。
我不明白这是怎么回事!JobDetailBean是否正在重新实例化jobClass对象?
我需要的是设置JobDetailBean的jobClass属性的值类的属性。
谢谢并致以问候。
发布于 2011-05-24 18:00:31
我也有同样的问题。我最终将它设为私有静态。如下所示。
private static afrodite;https://stackoverflow.com/questions/6108675
复制相似问题