java web 配置spring
https://blog.csdn.net/woshimyc/article/details/80089062
MyJob.java:
package com.yc.job;
import java.util.Date;
import com.yc.utils.DateUtil;
/**@ClassName: MyJob
* @Description:不用继承Quartz的Job接口
* @author:
* @date:
*/
public class MyJob {
public void execute() {
System.out.println("Quartz Spring XML 配置 - MyJob:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
}
}
MyJobDetail.java:
package com.yc.job;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.yc.utils.DateUtil;
/**
*
*
* @ClassName: MyJobDetail
*
* @Description: 配置文件中使用JobDetailBean,需要继承QuartzJobBean
*
* @author:
*
* @date:
*/
public class MyJobDetail extends QuartzJobBean{
protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
System.out.println("Spring 集成 Quartz 的第二种方式:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
}
}
MySimpleJob.java:
package com.yc.job;
import java.util.Date;
import org.springframework.stereotype.Component;
import com.yc.utils.DateUtil;
/**
* 简单任务
*/
@Component("mySimpleJob")
public class MySimpleJob {
public void execute() {
System.out.println("Quartz Spring XML 简单任务- MySimpleJob:"+DateUtil.format(new Date(), DateUtil.dmy_hms));
}
}
ediServiceContext.xml 新建配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: ediServiceContext.xml $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置Job类 -->
<bean id="myJob" class="com.yc.job.MyJob">
</bean>
<!-- 配置JobDetail -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.yc.job.MyJobDetail"></property>
<property name="durability" value="true"></property>
</bean>
</beans>
adapterContext.xml 新建配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: adapterContext.xml $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置调度工厂 -->
<!-- lazy-init=’false’,则容器启动时就会执行调度程序;
lazy-init=’true’,则需要实例化该bean才能执行调度程序 -->
<bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="true">
<property name="triggers">
<list>
<ref bean="cronTriggerFactoryBean"></ref>
<ref bean="quartzJobBean"></ref>
<ref bean="simpleTrigger"/>
</list>
</property>
</bean>
<!-- 1,CronTrigger 配置调度任务 -->
<!-- 配置JobDetail -->
<bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 执行目标job -->
<property name="targetObject" ref="myJob"></property>
<!-- 要执行的方法 -->
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 配置tirgger触发器 -->
<bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- jobDetail -->
<property name="jobDetail" ref="springQtzJobMethod"></property>
<!-- cron表达式,执行时间 每5秒执行一次 -->
<property name="cronExpression" value="0/5 * * * * ?"></property>
</bean>
<!-- 2,QuartzJobBean 配置调度任务 -->
<!-- 配置quartzJob触发器 -->
<bean id="quartzJobBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- jobDetail -->
<property name="jobDetail" ref="jobDetail"></property>
<!-- cron表达式,执行时间 每5秒执行一次 -->
<property name="cronExpression" value="0/5 * * * * ?"></property>
</bean>
<!--3,配置简单触发器-->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="simpleJobDetail"/>
<!-- 延迟3s执行 -->
<property name="startDelay" value="3000"/>
<!-- 每隔10s执行一次 -->
<property name="repeatInterval" value="10000"/>
</bean>
<!--使用简单作业详情-->
<bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--配置简单作业的目标类-->
<property name="targetObject" ref="mySimpleJob"/>
<!--配置简单作业的目标方法-->
<property name="targetMethod" value="execute"/>
<!--false表示等上一个任务执行完后再开启新的任务-->
<property name="concurrent" value="false"/>
</bean>
</beans>
applicationcontext.xml 配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: applicationcontext.xml $ -->
<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:context="http://www.springframework.org/schema/context"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<!-- spring集成 项目启动时会去扫描com.yc目录下的javaBean-->
<context:component-scan base-package="com.yc" />
<import resource="ediServiceContext.xml" />
<import resource="adapterContext.xml" />
</beans>
其中需要新加的
jar:quartz-2.2.1.jar,slf4j-api-1.7.7.jar