Heim >Java >javaLernprogramm >Implementierungscode für geplante Spring-Aufgaben in Java
import org.apache.log4j.*; public class TaskJob { public static Logger log = Logger .getLogger(TaskJob.class); public void SayHello() { // TODO Auto-generated method stub try { log.info("处理任务开始>........"); // 业务逻辑代码调用 System.out.println("时间[" + new java.util.Date().toLocaleString() + "]----->大家好啊!"); log.info("处理任务结束!"); } catch (Exception e) { log.error("处理任务出现异常", e); } } }
2. Als nächstes konfigurieren Sie es im Frühjahr:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean name="taskJob" class="util.TaskJob" /> <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="taskJob" /> </property> <property name="targetMethod"> <value>SayHello</value> </property> </bean> <!-- 配置触发器 --> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 --> <property name="jobDetail"> <ref bean="methodInvokingJobDetail" /> </property> <!-- 每天的8点到21点每隔1分钟触发,具体说明见附录 --> <property name="cronExpression"> <value>0 * 08-21 * * ?</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- 添加触发器 --> <property name="triggers"> <list> <ref local="cronTrigger" /> </list> </property> </bean> </beans>
3. Um die Ausführungsklasse zu testen, können Sie sehen, wie die geplanten Aufgaben ausgeführt werden, solange Sie die Spring-Konfigurationsdatei laden.
package util; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestApp { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("加载spring配置文件...."); ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println("加载配置文件完毕!"); // ApplicationContext context2 = new ClassPathXmlApplicationContext("test/timerTask/quartzTimer.xml"); } }
Wenn Sie es in einem Webprojekt ausführen möchten, fügen Sie den folgenden Code zu web.xml hinzu:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Im Folgenden finden Sie einige Anweisungen aus dem Internet:
Feld erlaubte Werte erlauben Sonderzeichen
Sekunden 0-59, - * /
Minuten 0-59, - * /
Stunden 0-23, - * /
Datumsangaben 1-31, - * ? / L W C
Monat 1-12 oder JAN-DEZ, - * /
Woche 1-7 oder SO-SA, - * ? / L C #
Jahr (optional) Leer lassen, 1970- 2099, - / ? 10:15 Uhr im Jahr 2005
„0 * 14 * * ?“ wird jede Minute von 14:00 Uhr bis 14:59 Uhr ausgelöst
„0 0/5 14 * * ?“ wird alle 1 Minute von 2:00 Uhr ausgelöst täglich von 14:00 bis 14:55 Uhr Auslöser 5 Minuten
"0 0/5 14,18 * * ?" Auslöser alle 5 Minuten von 14:00 bis 14:55 Uhr und 18:00 bis 18:55 Uhr täglich
"0 0- 5 14** 🎜>"0 15 10 ? * MO-FR" Wird von Montag bis Freitag um 10:15 Uhr ausgelöst
"0 15 10 15 * ?" Wird am 15. eines jeden Monats um 10:15 Uhr ausgelöst
„0 15 10 L * ?“ Wird am letzten Tag jedes Monats um 10:15 Uhr ausgelöst
„0 15 10 ? * 6L“ Wird am letzten Freitag jedes Monats um 10:15 Uhr ausgelöst
„0 15 10 ? * 6L 2002-2005“ Ausgelöst am letzten Freitag jedes Monats um 10:15 Uhr von 2002 bis 2005
„0 15 10 ? * 6#3“ Ausgelöst am dritten Freitag jedes Monats um 10:15 Uhr
Weitere Artikel zum Implementierungscode für geplante Frühjahrsaufgaben in Java finden Sie auf der chinesischen PHP-Website!