SSM整合Quartz(八)上

简介: SSM整合Quartz(八)上

一. SSM 整合Quartz 前的准备


编写一个简单的Demo, 将Quartz 框架真正的放置到我们的 SSM项目里面, 用Maven 进行构建项目。


关于 Maven 构建 SSM框架, 可以参考老蝴蝶以前写的文章: Maven整合SSM项目(七)


这个代码太多,就不复制出来了。 后面会把这个项目的链接放置进来,可以下载查看。


仍然使用的是简单的 user 表, 存在于 quartz 数据库里面。

image.png


创建各种配置文件,各个目录结构如下所示:


image.png


像上一章节那样, 将 Quartz 框架融入到里面, applicationContext-job.xml 配置文件,就是配置 quartz的信息的。


二. SSM 整合 Quartz

设置一个定时,每10s 往 user 表里面添加一条数据, 插入的数据信息为 ‘两个蝴蝶飞’ 的信息。


UserServiceImpl 实现类已经配置了事务和 @Service(“userService”) 注解


image.png


二.一 工作任务实现

那么,此时的工作任务就应该是:

public class MyJob extends QuartzJobBean{
  @Resource(name="userService")
  private UserService userService;
  @Override
  protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
  //要做的事,是打印当前的时间 
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //格式化时间
        String dateString=sdf.format(new Date());
        System.out.println("备份数据库的时间是:"+dateString);  
        User user=new User();
        user.setName("两个蝴蝶飞");
        user.setAge(24);
        user.setSex("男");
        user.setDescription("一个希望得到快乐的程序员");
        userService.addUser(user);
        System.out.println("添加成功");
  }
}


二.二 编写测试文件

编写 JobTest 测试类

package com.yjl.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
//引入配置文件 ,由于将 job和 spring 分开了,所以这儿用的是 -*, 而不能单单写 -job.xml 
@ContextConfiguration(value={"classpath*:/spring/applicationContext-*.xml"})
public class JobTest {
  @Test
  public void test(){
  System.out.println("CronTrigger 是否运行任务呢?");
  //需要休眠40s后,执行5次后,再关闭, 不然启动测试后直接关闭,看不出效果。
  try {
    Thread.sleep(40000);
  } catch (InterruptedException e) {
    // TODO 自动生成的 catch 块
    e.printStackTrace();
  }
  }
}


二.三 测试运行

控制台打印输出:

image.png


38行,指的是

userService.addUser(user);

NPE异常,则表示 userService 是null的, 即 userService 没有注入进来。


有两种方式可以解决这个问题

相关文章
|
6天前
|
缓存 Java 数据挖掘
SpringBoot整合定时任务技术Quartz
SpringBoot整合定时任务技术Quartz
61 0
|
6天前
|
SQL Java 调度
SpringBoot 整合 Quartz 定时任务框架
SpringBoot 整合 Quartz 定时任务框架
70 0
|
6天前
|
Java 调度 Spring
SpringBoot中实现定时任务(Quartz)(一)
SpringBoot中实现定时任务(Quartz)
44 0
SpringBoot中实现定时任务(Quartz)(一)
|
6天前
|
Java 调度
SpringBoot中实现定时任务(Quartz)(二)
SpringBoot中实现定时任务(Quartz)
30 0
SpringBoot中实现定时任务(Quartz)(二)
|
9月前
|
存储 druid Java
SpringBoot3集成Quartz
Quartz由Java编写的功能丰富的开源作业调度框架,可以集成到几乎任何Java应用程序中,并且能够创建多个作业调度;
109 0
|
12月前
|
Java 调度 容器
Springboot整合Quartz
Springboot整合Quartz
10776 0
|
12月前
|
Java 关系型数据库 调度
Springboot整合quartz
Springboot整合quartz
|
缓存 Java 调度
【Quartz】——与spring整合
【Quartz】——与spring整合
108 0
|
XML Java 调度
SpringBoot 整合 QuartZ|学习笔记
快速学习 SpringBoot 整合 QuartZ
248 0
|
XML 调度 数据格式
SSM 最简单的使用Quartz实现定时任务
SSM 最简单的使用Quartz实现定时任务
252 0
SSM 最简单的使用Quartz实现定时任务