스프링을 사용하여 석영을 통합하여 타이머를 구현하십시오 (데모를위한 Maven 프로젝트)
특정 기본 클래스를 기반으로하지 않는 방법
1. 개발 환경 및 종속성 JAR 패키지
봄 4.2.6. release
Maven 3.3.9
JDK 1.7
아이디어 15.04
2. 필수 항아리 종속성 (Maven 프로젝트의 pom.xml 파일에 추가)
<pectionency> <groupId> org.springframework </groupid> <artifactid> Spring-Context-Support </artifactid> <버전> 4.2.6. Release </version> </fectionency> <groupID> org.quartz-scheduler </groupId> <artifactz> quartz </artifactid> </version> 2.2.1 </version>.
3. 타이머를 구현할 때 사용되는 파일 :
planworkexcute.java- 타이머에 의해 실행 된 클래스
타이머 정보 구성을위한 spring-plan.xml -xml
넷째, 타이머 단계를 구현하십시오.
1. CC.royao.plantask 패키지에서 PlanworKexCute.java 파일을 만듭니다.
패키지 cc.royao.plantask; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.list; import java.util.map; import java.util.concurrent.executorservice; import java.util.concurrent.concurrent org.apache.log4j.logger; // import org.springframework.beans.beans.ack.annotation.autowired; public class planworkexecute {logger logger = logger.getLogger (this.getClass ()); logger를 인쇄 할 수 있습니다. witondrawnoaudittask () {simpledateformat outformat = new simpledateformat ( "yyyyy mm month ddd 날짜 hh : mm : ss"); System.out.println("Start withdrawal exemption task------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- logger.info ( "검토에서 철수 및 면제 시작 일---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2. spring-plan.xml 구성 파일 작성 참고 : 타이머 구성 파일 만 작성하십시오. 여러 타이머가 필요한 경우 Spring-Plan.xml에 Bean을 추가하고 타이머 클래스 방법을 정의하십시오. 여러 XML을 만들 필요가 없습니다.
Timer 타이머가 얼마나 오래 실행되는지에 대한 CRON 표현은 다음을 참조하십시오. http://www.vevb.com/article/138900.htm
Online 온라인 표현식 생성 URL : http://cron.qqe2.com/
<? xml 버전 = "1.0"encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xsi : schemalocation = "http://www.spramwork.org/schema/schema http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"default-gazy-init="false"><bean id = "job1"/> <!-여러 타이밍 클래스로가는 경로를 수정하십시오-> <! <bean id = "jobdetail _" "> bean = "job1"/> </property> <속성 이름 = "targetmethod"> <targetmethod "> value> wickdrawnoaudittask </value> <!-타이머 클래스의 메소드 이름-> </property> </bean> <bean id ="crontrigger_1 "> <property name ="jobdetail "> <ref bean ="jobdetail_1 ""! 이름 = "cronexpression"> <value> 0/2 * * * * *? </value> <!- 0 10 0 * *? 매일 0:10에 실행-> </property> </bean> <ean> <property name = "triggers"> <list> <Ref local = "crontrigger_1"/<!-모든 타이머를 추가해야합니다.
3. ApplicationContext.xml에 Spring-Plan.xml을 도입해야합니다. 다음 코드는 결론에 중점을 둡니다
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : jee = "http://www.springframework.org/schema/jee"xmlns : tx = "http://www.springframework.org/schema/tx"xmlns : context = "http://www.springframwork.org/schema/comext" xmlns : aop = "http://www.springframework.org/schema/aop"xmlns : mvc = "http://www.springframework.org/schema/mvc"xmlns : cache = "http://www.spramframpramwork.org/schema/cca xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sprring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.spramework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/cache http://www.spramework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.2.xsd "default-lazy-init ="true "> <!-로드 시스템 속성 파일 구성-> <bean id ="propertyconfigurer "> <roteconfigurer"> <value "> value> web-inf/jdbc.properties/jdbc.properties. <value> web-inf/sms.properties </value>-> </list> </property> </bean> <bean id = "dataSource"> <property name = "driverclassName"> value> $ {jdbc.driverClass} </value> </property name>-<property name = "defaultAutocommit">->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->-"fally"/>-"fally"/>-"fally"/>-"fally"/>. <value> jdbc : mysql : //192.168.14.239 : 3306/test? useUnicode = true & charac <value> $ {jdbc.password} </value> </value> </property> <속성 이름 = "maxactive"> </value> </value> </value> </property> <속성 이름 = "maxidle"> <value> 60 </value> </property> <속성 이름 = "maxwait"> <value> value> <!-0-> <property name> <property name> </property> <property name = "removeabandonedTimeout"> <value> 60000000 </value> <!-180-> </propert> <!-add-> <property name = "validationQuery"value = "select 1"> </property> <속성 이름 = "testwhileidle"value = "true"> 이름 = "testonborring"value = "true"> </property> <속성 이름 = "timebetweenevictionRunsmillis"value = "3600000"> </property> <property name = "numtestsperevictionRun"value = "50"> </property> <property name = "minevictableDletimemillis"value = "120000"> </property> </property> </property> </property> sqlsessionFactory-> <bean id = "sqlsessionFactory"> <속성 이름 = "dataSource"ref = "dataSource"/> </bean> <bean id = "ThreadPooltasKexEcutor"> <property name = "corepoolsize"value = "1"/> <property name = "maxpools" value = "300"/> <속성 이름 = "QueueCapacity"value = "50"/> <property name = "waitfortaskStocempleteOnshutdown"value = "true"/> </bean> <bean id = "transactionManager"> <property name = "dataSource"ref = "dataSource"> BASE-PACKAGE = "com.royao">-> <!-<context : include filter type = "regex"-> <!-expression = "com.royao.services.*" />-> <!-< /context : compents-scan>-> <aop : config proxy-target class = "*service id ="serviceporation = "serviceporation" "service id" cc.royao.mana.auth.service.*. impl.*serviceimpl.*(..)) ")"/> <aop : Advisor Pointcut-Ref = "ServiceOperation"Advice-Ref = "txadvice"/> </aop : config> <!-구성 id = txadvice "transatomation-manager ="txAdvice "> <tx : attributes> <tx : method name = "*"rollback-for = "exception"/> </tx : attributes> </tx : 조언> <tx : 조언 id = "transactionManagerAdivice"transaction-manager = "transactionManager"> <tx : attributes> <tx : method name = "*insert*"<tx : <tx : <tx : method = insert*" 전파 = "필수"/> <tx : 메소드 이름 = "*update*"propagation = "필수"/> <tx : 메소드 이름 = "*update*"propagation = "필수"/> <tx : 메소드 이름 = "*del*"propagation = "필수"/> <tx : method name = "doackroved"propagation = "resited"/>> <tx : 메소드 이름 = "edittemplate"propagation = "필수"/> <tx : 메소드 이름 = "dummydelete"propagation = "필수"/> <tx : 메소드 이름 = "batchdeluser"propagation = "필수"/> <!-<tx : method = "*"propagation = "required"/> </tx : </tx> </tx> 이름 = "BasePackage"> <aluge> cc.royao.mana.auth.mapper.*</value> </property> <속성 이름 = "sqlsessionfactorybeanname"value = "sqlsessionActory"/> </bean> <import resource = "Application-servlet.xml"/>> <! -> <import resource = "spring-plan.xml"/> </beans>요약
위의 것은 Spring Integrated Quartz를 사용하여 타이머 기능을 구현하는 편집자가 소개 한 것입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!