前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 使用quartz 定时xml 配置 与注解 以及注意事项

java 使用quartz 定时xml 配置 与注解 以及注意事项

作者头像
斯文的程序
发布2019-11-07 17:41:24
8700
发布2019-11-07 17:41:24
举报
文章被收录于专栏:带你回家带你回家

xml配置实现:

1.选择所需要的jar

代码语言:javascript
复制
<properties>
		<!-- spring版本号 -->
		<spring.version>4.2.2.RELEASE</spring.version>                      <!-- Quartz的版本 -->   
	</properties>

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
         <dependency>
		    <groupId>org.quartz-scheduler</groupId>
		    <artifactId>quartz</artifactId>
		    <version>2.2.2</version>
		</dependency>
</dependency>

2.创建一个类 然后写一个测试方法

代码语言:javascript
复制
public class VehicleViolationService{
   
	
	public void job2() throws Exception {
   	 System.out.println("111==========================");

   }

3.配置xml 配置文件

代码语言:javascript
复制
<bean id="vehicleViolationService" class="com.cvnavi.util.quartz.vehicleViolation.VehicleViolationService">
	<!--  <property name="videoService" ref="videoService"></property>  -->
	</bean>  
	<!-- //定义触发任务 -->
	<bean id="videoUrlJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
	    <property name="targetObject">  
	        <ref bean="vehicleViolationService"/>  
	    </property>  
	    <property name="targetMethod" value="job2"/>  <!-- 要执行的方法名称 -->  
	</bean>
	
	<!-- // 定义调度触发器 -->
	<bean id="videoUrlTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
    <property name="jobDetail" ref="videoUrlJob"></property> 
        <property name="cronExpression">
            <value>0/5 * * * * ?</value><!-- //这里做测试我们设置为每5分钟进行请求网易云 -->
        </property>
	</bean>
	<!-- // 定义调度工厂类 -->
	<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" autowire="no">
        <property name="triggers">
            <list>
            <!--在这里可以定义多个触发器-->
                <ref bean="videoUrlTrigger"/>
            </list>
        </property>
    </bean>

4.在web.xml 中扫描该文件也可以直接引入到sprng.xml 文件中

代码语言:javascript
复制
<context-param>
		<param-name>contextConfigLocation</param-name>
			classpath*:conf/sq-application-scheduler.xml 
		</param-value>
	</context-param>

5.效果图

注解配置:

请参考:http://blog.csdn.net/tanyongbing1988/article/details/45689987

个人认为注解的方式应该不会再企业中应用。因为注解的时间是在每个方法的上面加一个

@Scheduled(cron = "0/1 * * * * ? ")

这样不方便更改! 扩展性不是非常好。所以不建议用这种。

差点忘了重要的东西

注意事项:quartz 1.8以上的版本

引用的是这个类:

org.springframework.scheduling.quartz.CronTriggerFactoryBean

quartz 1.8以下的版本

引入的是:

org.springframework.scheduling.quartz.CronTriggerBean

所以新手在配置xml 的时候会发现 为什么配置了还报错找不到这个类?加载了这个包 为什么还找不到?

要注意版本的区别哦?不然会掉坑里面的!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • org.springframework.scheduling.quartz.CronTriggerBean
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档