定時器 獲取 service層
阿新 • • 發佈:2019-01-24
application
java<bean name="systemJob" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="class路徑" > </property> </bean> <bean id="systemTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="systemJob" /> <property name="startDelay" value="10000" /> <property name="repeatCount" value="0" /> </bean> <bean id="schedulerFactoryBean" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="systemTrigger" /> </list> </property> <property name="schedulerContextAsMap"> <map> <!-- spring 管理的service需要放到這裡,才能夠注入成功 --> <description>schedulerContextAsMap</description> <entry key="companyService" value-ref="companyService"/> </map> </property> <property name="autoStartup" value="true"/> <property name="schedulerName" value="cronScheduler" /> </bean>
public class SystemTimer implements Job { public void execute(JobExecutionContext context) { try { //獲取service SchedulerContext skedCtx = context.getScheduler().getContext(); CompanyService companyService = (CompanyService)skedCtx.get("companyService"); List<Company> list= companyService.findAll(); //得到所有company物件 if(list!=null&&list.size()!=0){ //如果存在就初始化系統引數 SystemProperty.init(list.get(0)); } } catch (Exception e) { e.printStackTrace(); } } }