SpringBoot的定时任务实现--SpringTask

SpringTask是Spring自带的功能。实现起来比较简单。

使用SpringTask实现定时任务有两种方式:

1.注解方式

   基于注解 @Scheduled 

@Scheduled(cron = "*/1 * * * * ?")
    public  void up(){
       System.out.println("定时任务开启:"+System.currentTimeMillis());
    }

cron表达式定义定时任务如何去执行。

2.配置文件xml方式

      基于xml的方式 【@Configuration + @ImportResource + xml】 需要重启应用才能生效

      2.1配置xml文件,定义xml文件的名称为task.xml,放置文件在resources文件夹下:

SpringBoot的定时任务实现--SpringTask_第1张图片

 xml代码如下:




    
    

    
    

    
    
        
        
    


2.2配置类加载xml文件

package com.cloudtop.base.task;


import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

/**
 * 加载调度的配置文件
 */
@Configuration
@ImportResource(locations={"classpath:task/task.xml"})//加载调度xml
public class SpringTaskConfig {
}

2.3任务的调度类实现

package com.cloudtop.base.task;


import com.cloudtop.base.error.exception.BusinessException;
import com.cloudtop.core.service.EnvironmentUpService;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 定时任务类
 */
public class ScheduleTask {
    @Autowired
    EnvironmentUpService environmentUpService;
    public void yearReportTask() throws BusinessException {
        System.out.println("*******定时任务执行的业务代码******");
    }

}

最后,第一种使用注解@EnableScheduling开启定时任务,第二种使用xml的方式配置好上面的三个文件就开启了定时任务,不用使用注解@EnableScheduling来开启定时任务。

@SpringBootApplication
@ServletComponentScan
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
@EnableScheduling
public class CloudtopWebFrameApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(CloudtopWebFrameApplication.class);
    }

    /**
     * 主程序入口
     * 所有SpringBoot项目均采用main方法启动主程序,该部分为必须项
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run(CloudtopWebFrameApplication.class, args);
    }



}

最后在控制台会输出结果:

SpringBoot的定时任务实现--SpringTask_第2张图片

你可能感兴趣的:(JAVA,spring,boot,springTask,定时任务)