
為南關等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及南關網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、做網(wǎng)站、南關網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
當我們使用spring boot整合schedule創(chuàng)建定時任務時,出現(xiàn)空指針,很有可能是因為配置定時任務類,創(chuàng)建job對象的時候,由于job工程接收到任務類創(chuàng)建對象是通過反射創(chuàng)建,通過放射創(chuàng)建的對象并不會將該對象放入spring容器,而在定時任務類進行注入業(yè)務類的時候無法注入。所以需要手動的將任務類對象放入spring容器中。
步驟:
1.定義創(chuàng)建任務類的類,并繼承AdaptableJobFactory,該類負責創(chuàng)建任務類對象,但是原始的類并沒有把創(chuàng)建好的類放入spring容器,所以需要重寫其中的方法手動將任務類放入spring容器。
2.將上一步創(chuàng)建的對象放入任務工廠對象中
附加:
定時類配置代碼
package com.example.quartz;
import org.quartz.CronScheduleBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
@Configuration
public class QuartzConfig {
//創(chuàng)建job對象
@Bean
public JobDetailFactoryBean jobDetailFactoryBean(){
JobDetailFactoryBean factory = new JobDetailFactoryBean();
//factory接收到QuartzJob類對象后,通過反射方式創(chuàng)建對象,并沒有放入spring容器中。
factory.setJobClass(QuartzJob.class);
return factory;
}
//創(chuàng)建simple trigger對象
@Bean
public SimpleTriggerFactoryBean simpleTriggerFactoryBean(){
SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();
//關聯(lián)jobDetail對象
factory.setJobDetail(jobDetailFactoryBean().getObject());
//間隔毫秒數(shù)
factory.setRepeatInterval(2000);
//重復次數(shù)
return factory;
}
//創(chuàng)建crontrigger
@Bean
public CronTriggerFactoryBean cronTriggerFactoryBean(){
CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
factory.setJobDetail(jobDetailFactoryBean().getObject());
factory.setCronExpression("0/1 * * * * ?");
return factory;
}
@Bean
public SchedulerFactoryBean schedulerFactoryBean(MyJobDetailFactoryBean myJobDetailFactoryBean){
SchedulerFactoryBean factory = new SchedulerFactoryBean();
//關聯(lián)trigger
factory.setTriggers(simpleTriggerFactoryBean().getObject());
//將前面的覆蓋掉。
factory.setTriggers(cronTriggerFactoryBean().getObject());
factory.setJobFactory(myJobDetailFactoryBean);
return factory;
}
}
文章題目:在使用schedule創(chuàng)建定時任務時,出現(xiàn)空指針的解決方式。
轉載源于:http://chinadenli.net/article22/ppdgjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、動態(tài)網(wǎng)站、建站公司、網(wǎng)站內(nèi)鏈、響應式網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)