SpringBoot学习笔记[0],Quartz

采用一下羽佳风格~~~

参考视频

① Spring Boot定时任务-@Scheduled的使用

pom文件 可能我冗余的东西比较多 

<!-- POM文件Maven的基础配置文件,项目对象模型(Project Object Model)描述文件 -->
<!-- 
  · 该项目是什么类型
  · 该项目名称是什么
  · 该项目的构建能自定义吗
 -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!-- POM 以下四个元素定义了该项目的唯一标识 -->
  <groupId>com.chin</groupId>
  <artifactId>01_hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <!-- POM 以下两个元素只是描述性元素,用于提供可阅读的名字 -->
  <name>01_hello</name>
  <url>http://maven.apache.org</url>

  <!-- 手动添加的默认配置 -->
  <!-- spring-boot-starter-parent 是Spring Boot核心启动器 -->
  <!-- 包含了自动配置,日志和YAML等大量默认配置 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
  </parent>
	<!-- <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.5.RELEASE</version>
	</parent> -->

  <!-- POM 定义全局属性 -->
  <properties>
    <!-- 整个项目的字符编码 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <!-- POM 项目依赖的框架-->
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  
  	<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
    </dependency>
  
     <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency> 
  </dependencies>
</project>

定时器类

package com.chin._scheduled.com;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class scheduledDemo {

	@Scheduled(cron="0/2 * * * * *")
	public void scheduledMethod(){
		System.out.println("定时器的触发测试。。。。。" + new Date());
	}
}

启动类

package com.chin._scheduled;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * Hello world!
 *
 */
@SpringBootApplication
@EnableScheduling
public class App 
{
    public static void main( String[] args )
    {
    	SpringApplication.run(App.class, args);
        System.out.println( "Hello World!" );
    }
}

运行结果

② corn 表达式 的使用

 

③ ④ 单纯使用 Quartz

pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.chin</groupId>
  <artifactId>01_scheduled_demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>01_scheduled_demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
  	<!-- <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
    </dependency> -->
    
    <!-- <dependency>
		<groupId>org.quartz-scheduler</groupId>
  		<artifactId>quartz</artifactId>
  		<version>2.2.1</version>
	</dependency> -->
<!-- quartz定时器 -->
   <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.3</version>
    </dependency>
    
    <!-- <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency> -->
  </dependencies>
</project>

这有个坑,浪费我一点时间,我不知道为什么quartz那个jar包,我一开始使用视频当中提到的2.2.1版本,但死活就是没有job等一系列的接口,所以,我就改成2.2.3这个版本接口了,终于有job了,太不容易了!!!

定时器的任务类

package com.chin._scheduled_demo;

import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

//import org.quartz.Job;
//import org.quartz.Job;


public class QuartzDemo implements Job {

	// 任务调度 需要去调度的我们的方法 
	public void execute(JobExecutionContext arg0) throws JobExecutionException {

		System.out.println("Execute......" + new Date());
	}

	
}

main函数的启动类。这个类名是随意的啊,我就是我这的maven工程自动给生成了App类,其实类名是很随意的。不用太过于拘谨。。。。。。

package com.chin._scheduled_demo;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args ) throws SchedulerException
    {
        System.out.println( "Hello World!" );
        // 1.创建job对象,你要做什么?
        JobDetail jd = JobBuilder.newJob(QuartzDemo.class).build();
        
        // 2.创建tigger对象,在什么时候做?
        Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever()).build();
        
        // 3.创建schedule对象,在什么时间做什么事儿?
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.scheduleJob(jd,trigger);
        
        // 启动
        scheduler.start();
    }
}

运行结果

另: 

 還可以使用cron 表達式 在第2步的时候

        // 2.创建tigger对象,在什么时候做?
//        Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever()).build();
        Trigger trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")).build();

运行结果如下

 ⑤ SpringBoot整合Quartz的使用

还没写完。。。

猜你喜欢

转载自blog.csdn.net/MENGCHIXIANZI/article/details/106064231
今日推荐