前两天项目中有一个功能是将到期的收费用户自动降成普通用户,这其中便需要更新数据库的字段,一开始我想的是写一个数据库脚本,让期每天定点执行, 后来发现spring 框架就可以完成定时的任务,因为对spring 不是很熟,所以在百度中搜索答案的同时发现两种办法,一种办法就是spring 整合quartz 框架,另一种办法是spring 的注解方法,而我们项目正好全是用的spring 注解方式,所以便采用了spring 的第二种方法,记录下来,以便后期使用:
以下代码转自:http://www.pm-road.com/index.php/2014/07/28/36/
1:首先要配置我们的spring.xml,在xmlns 多加下面的内容
xmlns:task=”http://www.springframework.org/schema/task”
2:然后在xsi:schemaLocation多加下面的内容
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd
3:最后是我们的task任务扫描注解,我的配置扫描位置是:项目根目录下面的task包
<task:annotation-driven/>
<context:annotation-config/>
<bean class=”org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor”/>
<context:component-scan base-package=”task”/>
4:在task包下定义接口:IVIPEndTime
package task;
public interface IVIPEndTime {
/**
* 更新收费用户到期情况
*/
public void updateVipEndTime();
}
5:增加实现方法 VIPEndTimeImpl
package task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import service.UserManager;
@Component
public class VIPEndTimeImpl implements IVIPEndTime{
@Autowired
private UserManager userManager;//该类为user的操作类,需要自己定义
/*
* add by lipeng
* 表示每天的0点进行检查
*
*/
@Scheduled(cron=”0 0 0 * * ? “)
@Override
public void updateVipEndTime() {
userManager.updateVipWhenEndTime();
}
}
最终,就可以完成到期收费用户的自动降为普通用户了,而其中涉及了 @Scheduled(cron=”0 0 0 * * ? “)的一些用法,具体链接可参照:http://www.pm-road.com/index.php/2014/07/28/41/
相关推荐
spring-boot 2.0.2 数据库配置定时任务。spring-boot 2.0.2.RELEASE,将定时任务配置在数据库,启动项目的时候,用mybatis读取数据库,实例化对象,并设定定时任务。如果需要新增,减少,修改定时任务,仅需要修改...
spring @Scheduled定时任务代码
在不停服务的情况下,动态修改Spring定时任务的执行周期,即动态修改定时任务的cron参数。
springboot双数据库定时同步,可以是mysql,SqlServer
Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析,做了一些测试说明了各个参数的作用
spring boot @scheduled注解 cron 表达式实现计划任务调度。
使用spring @Scheduled注解执行定时任务
本文将详细探讨Spring Boot中@Scheduled注解的使用,包括其原理、实现流程、步骤和代码示例。通过本文,读者将能够了解如何在Spring Boot应用中轻松创建和管理定时任务。 # @Scheduled注解简介 在Spring框架中,@...
主要介绍了spring 定时任务@Scheduled的相关资料,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
本例中一共使用了两种 spring 的定时任务,一种是使用 xml 配置的定时任务,一种是使用 annotation 配置的定时任务,其中后者的 cronExpress 表达式是配置在配置文件中的,两者的区别在于,xml是比较传统的方式,...
本代码是个demo,展示spring定时任务的三种实现方式:xml配置实现,注解实现及动态定时任务实现。
本篇文章中主要介绍了Spring Boot中使用@Scheduled创建定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要给大家介绍了关于Spring Boot基于数据库如何实现简单的分布式锁的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
IDEA使用springboot自带scheduled实现任务调度 代码解析:https://www.cnblogs.com/personblog/p/14237202.html
Spring + quartz 定时任务修改定时时间不重启服务
Spring 定时器 任务调度 怎么在项目中写定时任务 怎么配置一些环境
- chapter4-1-1:[使用@Scheduled创建定时任务](http://blog.didispace.com/springbootscheduled/) - chapter4-1-2:[使用@Async实现异步调用](http://blog.didispace.com/springbootasync/) #### 日志管理 - ...
主要介绍了Spring Boot @Scheduled定时任务代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring boot开启定时任务的三种方式 零、前言 第一种也就是最简单的一种:基于注解 (@Scheduled)的方式; 第二种:基于接口 (SchedulingConfigurer); 第三种:基于注解设定多线程定时任务。 一、基于@Scheduled注解...