Spring Boot使用自带定时器@Scheduled

本文介绍如何在SpringBoot应用中使用@Scheduled注解实现每分钟执行一次的任务,并通过@EnableScheduling启用定时器,同时讲解了如何使用@Component注解确保类被自动扫描。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①:写法:@Scheduled(cron = “0 * * * * ?”)," "号中的内容可自行百度Scheduled代码生成,这里是一分钟执行一次,百度生成的代码中一般都是6位,有的版本只支持5位,可直接删除生成的最后一位,效果不变。

②在Application启动类中加入注解:@EnableScheduling //定时器注解

③在使用定时器的类中加入注解:@Component,让spring boot在启动时自动扫描,避免没加载进来

Spring Boot 提供了一种方便的方式来动态加载定时任务,通常使用的是Quartz或Spring自带的`@Scheduled`注解。以下是使用Spring Boot动态加载定时任务的基本步骤: 1. **引入依赖**: 如果你想使用第三方库如Quartz,需要添加quartz-scheduler依赖;如果直接使用Spring的`@Scheduled`注解,则无需额外依赖。 ```xml <!-- Quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> </dependency> <!-- 或者使用Spring的内置支持 --> <!-- No additional dependency needed --> ``` 2. **配置定时任务**: - 使用Quartz:在application.properties或application.yml文件中配置Quartz的属性,比如数据库连接信息,然后创建JobDetail和Trigger,并注入到JobFactory或SchedulerFactoryBean中。 ```yaml quartz: dataSource: # 数据源配置 job-store: # 存储策略配置 scheduler: # 定时器配置 ``` 创建Job和Trigger: ```java @Component public class DynamicTask implements Job { //... } @Configuration public class QuartzConfig { @Autowired private SchedulerFactoryBean factoryBean; @PostConstruct public void start() { Trigger trigger = ...; // 创建触发器 factoryBean.scheduleJob(newJob(DynamicTask.class), trigger); // 注册任务 } } ``` 3. **实现动态加载**: Spring Boot允许你在运行时通过AOP(面向切面编程)或者事件发布/订阅模式来动态注册或取消定时任务。例如,你可以创建一个TaskRegistry,当有新的任务需要执行时,将它们注册进去。 4. **调度启动**: 在应用启动时,可以启动定时任务,如Quartz的Scheduler或者使用Spring的`ApplicationRunner`或`CommandLineRunner`来启动。 ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @EventListener(StartupEvent.class) public void startTasks() { TaskRegistry.start(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值