Java의 Spring 프레임워크에서 Quartz 튜토리얼 구성

6509 단어 JavaSpringQuartz
Spring에서 Quartz를 구성하는 절차:
1. JAR 패키지 가져오기
quartz에 필요한 JAR 패키지는 스프링에 포함되어 있으며, 스프링 압축 해제 후 디렉터리의\lib\quartz 아래에 있는 quartz-all-1.6.1에 위치합니다.jar,
프로젝트의 WEB-INF/lib로 복사하면 됩니다.
2. 웹 설정.xml,spring이 시작될 때quartz 프로필을 불러옵니다.

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
  <!-- spring --> 
  <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:application-*.xml</param-value> 
  </context-param> 
 
  <!-- spring  --> 
 
  <listener> 
    <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
  </listener> 
</web-app> 

3.quartz 프로필 작성:application-quartz.xml 사실 이 설정들은 다른spring 프로필에 충분히 쓸 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
 
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:aop="http://www.springframework.org/schema/aop" 
  xmlns:tx="http://www.springframework.org/schema/tx" 
  xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> 
 
  <!--   --> 
  <bean id="testTaskBean" class="com.jp.task.TestTask" /> 
 
  <!--   --> 
  <bean id="testTaskTimerMethod" 
    class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
    <property name="targetObject" ref="testTaskBean" /> 
    <!-- targetMethod   --> 
    <property name="targetMethod" value="executeAction" /> 
    <property name="concurrent" value="false" /> 
  </bean> 
 
  <!--   --> 
  <bean id="testTaskTrigger" 
    class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="syncPolicyTaskTimerMethod" /> 
        <!--  3 0  --> 
    <property name="cronExpression" value="0 0/3 * * * ?" /> 
  </bean> 
 
  <!--   --> 
  <bean id="scheduler" 
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="triggers"> 
      <list> 
        <ref bean="testTaskTrigger" /> 
      </list> 
    </property> 
  </bean> 
</beans> 

4. 작업을 수행하는 JAVA 클래스 TestTask 작성

package com.jp.task; 
  
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 
import org.springframework.scheduling.quartz.QuartzJobBean; 
 
 
public class TestTask extends QuartzJobBean{ 
   
  Logger log = Logger.getLogger( PolicyServiceTest.class ); 
     
  public void executeAction(){ 
    log.info("Hello quartz"); 
  } 
 
  @Override 
  protected void executeInternal(JobExecutionContext arg0) 
      throws JobExecutionException { 
     
  } 
 
} 

5. 모든 작업 준비가 완료되면 실행됩니다.기본적으로 잘못 보고했다.대략 NoSuchMethod와 같은 오류입니다.
이것은 commons-collections 때문입니다.jar 버전이 너무 낮아서 그래요.commons-collections-3.2.jar이상.
이때 네가 찾은 공사 중은commons-collections-3.2가 있었다.jar. 어떻게 된 일인지, 다시 찾아보면hibernate에commons-collections-2.1.1이 있다.jar.
commons-collections-2.1.1.자르는 지우면 돼.
PS:cronExpression – Cron 표현식 설명
  • 시간
  • 월간 날짜
  • 주 내 날짜
  • 년(옵션 필드)
  • 특수 문자
  • Cron 트리거는 다음과 같은 일련의 특수 문자를 사용합니다.
    백슬래시(/) 문자는 증분 값을 나타냅니다.예를 들어, 초 필드에서 5/15는 15초에 한 번씩 5초부터 시작됩니다. 
    물음표(?)문자 및 알파벳 L 문자는 월간 날짜와 주간 날짜 필드에서만 사용할 수 있습니다.물음표는 이 필드에 구체적인 값이 포함되지 않음을 나타낸다.따라서 월간 날짜를 지정하면 주간 날짜 필드에'?'를 삽입할 수 있습니다.주 내 날짜 값이 중요하지 않다는 것을 나타낸다.알파벳 L 문자는 last의 줄임말이다.월내 날짜 필드에 놓으면 그 달의 마지막 날에 실행할 것을 표시합니다.주 내 날짜 필드에서 "L"이 단독으로 존재하면 "7"과 같고, 그렇지 않으면 그 달 내 주 내 날짜의 마지막 실례를 대표합니다.그래서'0L'은 그 달의 마지막 일요일에 집행할 것을 표시한다. 
    월간 날짜 필드의 알파벳 (W) 문자는 지정한 값에 가장 가까운 작업일에 실행을 배정합니다."1W"를 월간 날짜 필드에 놓으면 그 달의 첫 번째 근무일 내에 실행을 안배한다는 것을 나타낸다. 
    우물 번호 (#) 문자는 지정된 달의 특정 작업일 인스턴스를 지정합니다."MON#2"를 주 내 날짜 필드에 놓으면 그 달의 두 번째 월요일에 임무를 안배한다는 것을 나타낸다. 
    별표(*) 문자는 와일드카드 문자로 가능한 모든 값을 사용할 수 있습니다. 
    필드 허용 값이 허용하는 특수 문자:
    초 0-59, - */
    분 0-59, -*/
    시간 0-23, - */
    날짜 1-31, -*?/L W C  
    월 1-12 또는 JAN-DEC, -*/
    월요일 1-7 또는 SUN-SAT, -*?/L C#  
    년(옵션) 비워두기, 1970-2099, - */
    표현식 의미
    "0 0 12 * * ?"매일 낮 12시에 터치
    "0 15 10?*"매일 오전 10시 15분 터치
    "0 15 10 * * ?"매일 오전 10시 15분에 터치
    "0 15 10 * *?*"매일 오전 10시 15분 터치
    "0 15 10 * *? 2005"2005년의 매일 오전 10시 15분 터치
    "0 * 14 * * ?"매일 오후 2시부터 오후 2시 59분까지 1분마다 터치
    "0 0/5 14 * * ?"매일 오후 2시부터 오후 2시 55분까지 5분마다 터치
    "0 0/5 14,18 * * ?"매일 오후 2시부터 2:55 사이와 오후 6시부터 6:55 사이의 5분마다 촉발
    "0 0-5 14 * * ?"매일 오후 2시부터 오후 2시까지 1분마다 터치
    "0 10, 44, 14? 3 WED"매년 3월 수요일 오후 2:10, 2:44에 터치
    '0 15 10?* MON-FRI'월~금 오전 10시 15분 터치
    "0 15 10 15 * ?"매월 15일 오전 10시 15분 터치
    "0 15 10 L * ?"매월 마지막 날 오전 10시 15분에 터치
    "0 15 10?* 6L"매월 마지막 금요일 오전 10시 15분 터치
    "0 15 10?* 6L 2002-2005"2002년부터 2005년까지 매월 마지막 금요일 오전 10:15
    "0 15 10?* 6 #3"매월 셋째 주 금요일 오전 10시 15분 터치
    매일 아침 6시.
    0 6 * * * 
    두 시간마다
    0 */2 * * *  
    밤 11시부터 아침 8시까지 두 시간마다, 아침 8시마다
    0 23-7/2,8 * * * 
    매달 4일과 매주 월요일부터 수요일까지 아침 11시.
    0 11 4 * 1-3  
    1월 1일 아침 4시.
    0 4 1 1 *

    좋은 웹페이지 즐겨찾기