详解Quartz 与 Spring框架集成的三种方式如下:
一、通过Spring的配置方式
1. 引入Quartz依赖
在pom.xml文件中引入Quartz的依赖,示例代码如下:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.1</version>
</dependency>
2. 配置Quartz的job和trigger
在Spring的配置文件中,使用<bean>
标签配置Quartz的job和trigger,示例代码如下:
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="jobService"/>
<property name="targetMethod" value="execute"/>
</bean>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"/>
<property name="repeatInterval" value="5000"/>
<property name="startDelay" value="1000"/>
</bean>
3. 配置Quartz的SchedulerFactoryBean
最后在Spring的配置文件中配置Quartz的SchedulerFactoryBean,示例代码如下:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger"/>
</list>
</property>
</bean>
二、通过注解方式
1. 引入Quartz依赖
同样在pom.xml文件中引入Quartz的依赖。
2. 配置Quartz的job和trigger
在Spring的配置文件中,不需要用<bean>
标签配置Quartz的job和trigger,而是使用注解的方式。示例代码如下:
@Component
public class ScheduledJob {
@Scheduled(fixedDelay = 5000L)
public void execute() {
System.out.println("Hello Quartz!");
}
}
3. 配置@EnableScheduling
最后,在Spring Boot应用中,在启动类上使用@EnableScheduling
注解开启Spring的定时任务,示例代码如下:
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
三、通过扩展Spring的方式
1. 导入Quartz的配置文件
首先,在src/main/resources
目录下创建一个Quartz的配置文件quartz.properties
,示例配置如下:
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
2. 继承Spring Quartz JobBean
接着,创建一个继承Spring Quartz JobBean的类,实现定时任务的逻辑。示例代码如下:
public class ScheduledJob extends JobBean {
@Autowired
private JobService jobService;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
jobService.execute();
}
}
3. 配置Quartz的SchedulerFactoryBean
最后,在Spring的配置文件中配置Quartz的SchedulerFactoryBean,示例代码如下:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="scheduledJob"/>
<property name="targetMethod" value="executeInternal"/>
</bean>
</list>
</property>
<property name="triggers">
<list>
<bean class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="scheduledJobDetail"/>
<property name="repeatInterval" value="5000"/>
<property name="startDelay" value="1000"/>
</bean>
</list>
</property>
</bean>
以上就是详解Quartz 与 Spring框架集成的三种方式
的完整攻略,如果需要更细致的说明,欢迎提出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Quartz 与 Spring框架集成的三种方式 - Python技术站