quartz 2 입문 spring 통합 설정
quartz-2.2.1.jar
quartz-jobs-2.2.1.jar
c3p0 - 0.9.1. jar (데이터 베 이 스 를 통 해 정시 작업 을 저장 할 때 필요 합 니 다)
slf4j - api - 1.7.2. jar (로그 관련)
maven 설정
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
XML 설정
새 파일 spring - context - quartz. xml 을 만 들 고 spring 프로필 에 파일 을 추가 합 니 다:
<import resource="spring-context-quartz.xml"/>
spring - context - quartz. xml 는 주로 세 부분 으로 구성 되 어 있 습 니 다.
JobDetail: MethodInvoking JobDetail Factory Bean 을 사 용 했 습 니 다. Job 인터페이스, 일반적인 자바 빈 을 실현 할 필요 가 없습니다.
Trigger: 여 기 는 CronTrigger 를 사 용 했 습 니 다. 시간 표현 식 을 통 해 임 무 를 수행 합 니 다. 매우 유연 합 니 다. 여 기 는 더 이상 소개 하지 않 겠 습 니 다.
Scheduler: 스케줄 러, Trigger 설정 시점 에 따라 JobDetail 설정 을 실행 하 는 방법
<!-- schema -->
<!-- job -->
<bean id="jobDetail1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="myJob" />
</property>
<property name="targetMethod">
<value>checkJob1</value>
</property>
</bean>
<bean id="jobDetail2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="myJob" />
</property>
<property name="targetMethod">
<value>checkJob2</value>
</property>
</bean>
<!-- job -->
<!-- -->
<bean id="jobTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="jobDetail1" />
</property>
<property name="cronExpression">
<!-- 2 -->
<value>0 0 2 * * ?</value>
</property>
</bean>
<bean id="jobTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="jobDetail2" />
</property>
<property name="cronExpression">
<!-- 1 -->
<value>0 0 0/1 * * ?</value>
</property>
</bean>
<!-- -->
<!-- -->
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="jobTrigger1" />
<ref bean="jobTrigger2"/>
</list>
</property>
</bean>
<!-- -->
자바 클래스
두 번 째 단 계 는 MethodInvoking JobDetail Factory Bean 을 사용 하여 JobDetail 을 설정 합 니 다. 따라서 자바 류 는 Job 인터페이스의 execute 방법 을 더 이상 실현 하지 않 아 도 됩 니 다. 일반적인 자바 bean 이면 됩 니 다.
@Component("myJob")
public class MyJob {
public void checkJob1(){
//TODO
}
public void checkJob2(){
//TODO
}
}
quartz - 2.2.1 관련 jar 패 키 지 를 첨부 하여 다운로드 하거나 quartz 홈 페이지 에서 다른 버 전 을 다운로드 합 니 다.
http://www.quartz-scheduler.org/downloads
다음 편 에 서 는 quartz 2 의 가장 간단 한 사용 을 소개 합 니 다.