在新版本的 发布后,急迫尝鲜的我将相关的项目已经更换为最新版本,在 源码 看到更新日志,表明了针对 新版本进行了 自动化配置,省去了很多繁琐的配置。
官网更新日志
Auto-configuration support is now include for the Quartz Scheduler. We’ve also added a new starter POM. You can use in-memory , or a full JDBC-based store. All , and beans from your Spring application context will be automatically registered with the . For more details read the new "Quartz Scheduler" section of the reference documentation.
版本集成了 官网最新版本。
本章目标
使用 新特性完成 自动化配置。
SpringBoot 企业级核心技术学习专题
构建项目
在前面章节第四十章:基于SpringBoot & Quartz完成定时任务分布式多节点负载持久化内我们已经通过添加配置的方式完成集成,为了本章的方便直接复制之前的项目,在基础上进行修改。 打开 配置文件, 为我们提供了对应的依赖,我们将之前的 相关依赖删除,替换为 ,如下所示:
删除QuartzConfiguration配置类
在之前章节我们使用 配置类来完成了 需要的一系列配置,如: 、 等,在我们添加 依赖后就不需要主动声明工厂类,因为 已经为我们自动化配置好了。
自动化配置源码
我们找到 的 并且展开 ,找到 ,该目录就是 为我们提供的 自动化配置源码实现,在该目录下有如下所示几个类:
该类替代了我们之前在 配置类的 内部类实现,主要作用是我们自定义的 子类被进行托管,可以在定时任务类内使用注入任意被 托管的类。
该类是一个枚举类型,定义了对应 、 文件内 配置,其目的是配置 任务的数据存储方式,分别为:MEMORY(内存方式: )、JDBC(数据库方式)。
该类是自动配置的主类,内部配置了 以及 ,使用 作为属性自动化配置条件。
该类主要用于数据源初始化后的一些操作,根据不同平台类型的数据库进行选择不同的数据库脚本。
该类对应了 在 、 文件内开头的相关配置。
这是一个接口,我们实现该接口后并且将实现类使用 托管,可以完成 的个性化设置,这里的设置完全可以对 做出全部的设置变更。
spring.quartz配置
看到 类源码,我们知道了,想要使用自动化配置,需要满足 属性配置类的初始化,所以我们需要再 、 配置文件内添加对应的配置信息,如下所示:
该配置其实代替了之前的 ,我们把之前 配置文件内的所有配置转换成 风格,对应的添加在该配置下即可,在 类内,会自动调用 的 方法,把 内的所有配置进行设置。
设置 任务的数据持久化方式,默认是内存方式,我们这里沿用之前的方式,配置 以使用数据库方式持久化任务。
该配置目前版本没有生效,根据官网文档查看,其目的是自动将 需要的数据表通过配置方式进行初始化。
测试
启动项目
打开浏览器访问 进行添加定时任务
查看控制台输出
根据控制台内容,可以看到我们的定时任务已经正常的开始执行,当然我们如果打开 同样可以实现 的效果。
总结
综上所述我们已经完成了 集成 ,我们只需要添加依赖、添加配置即可,别的不需要做任何代码编写。
本章源码已经上传到码云: SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter SpringBoot相关系列文章请访问:目录:SpringBoot学习目录 QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录 SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录,感谢阅读!
加入知识星球,恒宇少年带你走以后的技术道路!!!