SpringBoot定时任务——利用注解实现

目录

什么是定时任务?

定时任务的实现

cron的参数设置:

利用定时任务刷新数据库


什么是定时任务?

顾名思义就是定期的帮我们去实现一些功能,比如最常用的就是跟用户发送信息,还有就是定时的去清理一些垃圾数据

定时任务的实现

Scheduled注解可以帮助我们去实现一个简单的定时任务

这种形式存在一定的缺陷,如果我们的项目是集成开发的情况下,就可能出现一种情况

会有很多台机器进行该功能的执行,这样我们的代码就会报错,因此这种方式只能够应用在单机模式下

代码实例:我们先创建一个jobDemo类 ,然后加上@Scheduled注释 

@Component // j交给Springboot去管理我们的项目
@EnableScheduling
public class jobDemo {
    @Scheduled(cron = "0 50 21 1/1 1/1 ? ") //cron参数是设置时间的 如 每天的21点50分执行
    public void run(){
        System.out.println("我执行了");
    }
}

cron的参数设置:

我们可以去找百度一篇在线转译的工具,比如下面这一篇就可以使用:

在线Cron表达式生成器

完成这些操作以后,我们就可以就可以来实现一个定时刷新数据库的操作

利用定时任务刷新数据库

这里做一个简单的查询为例

还是先创建一个用于定时任务的类

利用@Autowired将service层引入

@Component
@EnableScheduling
public class JobTimeDemo {

    @Autowired
    private UserService userService;
 
    @Scheduled(cron = " 0/5 0,55,56 22 1/1 1/1 ? ")
    public void run(){
        System.out.println(userService.selectPasswordByName("admin","123456"));
        System.out.println("我执行了");
    }
}

 可以看到 已经可以自动查到数据库了

 另外 附加实体类

import lombok.Data;

@Data
public class UserDTO {
        private int id;
        private String userName;
        private String password;
}

xml层

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.dao.UserMapper">
    <select id="selectPasswordByName" resultType="com.kuang.dto.UserDTO">
    select * from user where user_name = #{userName} and password = #{password}
</select>
</mapper>

dao层

@Mapper
@Repository
public interface UserMapper {
    UserDTO selectPasswordByName(@Param("userName") String userName, @Param("password") String password);
}

service层

public interface UserService {
     UserDTO selectPasswordByName(String userName,String password);
}

service实现类

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public UserDTO selectPasswordByName(String userName,String password) {
        return userMapper.selectPasswordByName(userName,password);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADRU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值