天天看點

Spring和Quartz結合,配置細節

<bean id="saveProjectJob"

 3        class="org.springframework.scheduling.quartz.JobDetailBean">

 4        <property name="jobClass">

 5        <value>

 6        com.gresoft.components.fileupload.service.ParseFileQuartz

 7        </value>

 8        </property>

 9        <property name="jobDataAsMap">

10        <map>

11        <entry key="readXmlService">

12        <ref bean="readXmlService" />

13        </entry>

14        </map>

15        </property>

16        </bean>

17        <bean id="saveCron"

18        class="org.springframework.scheduling.quartz.CronTriggerBean">

19        <property name="jobDetail">

20            <ref local="saveProjectJob" />

21        </property>

22        <property name="cronExpression">

23            <value>0/30 * * * * ?</value>

24        </property>

25    </bean>

26    <bean id="scheduler"

27        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

28        <property name="triggers">

29            <ref local="saveCron" />

30        </property>

31    </bean>

注意上述紅色字型<map>結點,這裡主要是為了在定時任務需要使用到Bean,通過Spring給注入進來,如果不寫明,就會報

java.lang.NullPointerException錯誤,主要是因為沒有注入Bean

注意:在Spring配置和Quartz內建内容時,有兩點需要注意

1、在<Beans>中不能夠設定default-lazy-init="true",否則定時任務不觸發,如果不明确指明default-lazy-init的值,預設是false。

2、在<Beans>中不能夠設定default-autowire="byName"的屬性,否則背景會報org.springframework.beans.factory.BeanCreationException錯誤,這樣就不能通過Bean名稱自動注入,必須通過明确引用注入。

以上内容截自:http://www.blogjava.net/wuxj888java/archive/2008/01/09/173951.html

繼續閱讀