SpringBoot结合Quarter
时间: 2023-07-23 10:37:46 浏览: 115
QuarterWavelength Resonators
Spring Boot 与 Quartz 结合使用的方式非常简单。只需要在 Spring Boot 项目中添加 Quartz 的依赖,然后在配置文件中配置 Quartz 的属性即可。
1. 添加依赖
在 pom.xml 文件中添加 Quartz 的依赖:
```
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
```
2. 配置 Quartz
在 Spring Boot 项目中,可以通过配置文件的方式来配置 Quartz。在 application.properties 或 application.yml 文件中添加如下配置:
```
# Quartz 配置
spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=never
spring.quartz.properties.org.quartz.scheduler.instanceName=SpringBootQuartz
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.jobStore.dataSource=myDS
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
spring.quartz.properties.org.quartz.dataSource.myDS.driverClassName=com.mysql.jdbc.Driver
spring.quartz.properties.org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
spring.quartz.properties.org.quartz.dataSource.myDS.user=root
spring.quartz.properties.org.quartz.dataSource.myDS.password=root
```
3. 创建定时任务
在 Spring Boot 项目中,可以使用 @Scheduled 注解来创建定时任务,例如:
```
@Component
public class MyJob {
@Scheduled(cron = "0/5 * * * * ?")
public void run() {
System.out.println("MyJob is running...");
}
}
```
这个定时任务会每 5 秒钟执行一次。
4. 启动定时任务
在 Spring Boot 项目中,可以通过在启动类上添加 @EnableScheduling 注解来启用定时任务的功能:
```
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
这样,在应用程序启动时就会自动启动定时任务。如果需要手动启动定时任务,可以通过调用 Scheduler 的 start 方法来启动。例如,在一个 Controller 中可以这样启动定时任务:
```
@Controller
public class MyController {
@Autowired
private Scheduler scheduler;
@GetMapping("/startJob")
public String startJob() throws SchedulerException {
scheduler.start();
return "job started";
}
}
```
这个方法会在访问 /startJob 路径时启动定时任务。
阅读全文