QuartzとSpringフレームを統合する3つの方法
12761 ワード
QuartzとSpringフレームを統合する3つの方法
XML+Spring MVCバージョン
POMファイル
上と似ていますが、spring-quartz.xmlだけでconfigrationになります.
QuartzConfigとハローTaskは上記と同じ起動方式が違います.はxmlの方式に対して熟知しています.すべての先にxml を配置します. confugration Spring Bootのプロジェクトではないなら、まだ少ない を使っています.
XML+Spring MVCバージョン
POMファイル
4.0.0
com.adagio
task
0.0.1-SNAPSHOT
war
task
UTF-8
4.1.6.RELEASE
org.aspectj
aspectjweaver
1.8.3
org.quartz-scheduler
quartz
2.2.1
javax
javaee-api
7.0
provided
junit
junit
4.12
test
org.springframework
spring-context
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-tx
${spring.version}
task
maven-compiler-plugin
2.3.2
1.7
1.7
org.apache.maven.plugins
maven-war-plugin
2.6
org.apache.maven.plugins
maven-surefire-plugin
2.18.1
true
web.xml
contextConfigLocation
classpath*:/spring/spring-core.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:/spring/spring-mvc.xml
1
dispatcher
/
task
index.jsp
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
spring.xml
spring-mvc.xml
text/plain;charset=UTF-8
text/html;charset=UTF-8
spring-quarartz.xml
excute
ハローTaskpackage com.adagio;
import org.springframework.stereotype.Component;
@Component
public class HelloTask {
public void excute() {
System.out.println("excute...22222>>>>>>>>");
}
}
configration+Spring MVC上と似ていますが、spring-quartz.xmlだけでconfigrationになります.
package com.adagio;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@Configuration
public class QuartzConfig {
@Bean
public SchedulerFactoryBean factoryBean() {
SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
factoryBean.setTriggers(cronTriggerFactoryBean().getObject());
return factoryBean;
}
@Bean
public CronTriggerFactoryBean cronTriggerFactoryBean() {
CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
cronTriggerFactoryBean.setJobDetail(methodInvokingJobDetailFactoryBean().getObject());
cronTriggerFactoryBean.setCronExpression("0/5 * * * * ?");
return cronTriggerFactoryBean;
}
@Bean
public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean() {
MethodInvokingJobDetailFactoryBean m = new MethodInvokingJobDetailFactoryBean();
m.setTargetObject(helloTask());
m.setTargetMethod("excute");
return m;
}
@Bean
public HelloTask helloTask() {
return new HelloTask();
}
}
Configration+Spring BootQuartzConfigとハローTaskは上記と同じ起動方式が違います.
package com.adagio;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages= {"com.adagio"})
@SpringBootApplication
public class TimerTaskApplication {
public static void main(String[] args) {
SpringApplication.run(TimerTaskApplication.class, args);
}
}
締め括りをつける