SpringBoot2.x开发案例之整合Quartz任务管理系统

基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目。html

基于spring-boot +quartz 的CRUD任务管理系统:vue

https://gitee.com/52itstyle/spring-boot-quartzjava

开发环境

JDK1.八、Maven、Eclipsemysql

技术栈

SpringBoot2.0.一、thymeleaf3.0.九、quartz2.3.0、iview、vue、layer、AdminLTE、bootstrapgit

启动说明

  • 项目使用的数据库为MySql,选择resources/sql中的tables_mysql_innodb.sql文件初始化数据库信息。
  • 在resources/application.properties文件中替换为本身的数据源。
  • 运行Application main方法启动项目,项目启动会自动建立一个测试任务 见:com.itstyle.quartz.config.TaskRunner.java。
  • 项目访问地址:http://localhost:8080/task

项目截图

1.png

2.png

3.png

4.png

5.png

6.png

项目源码: https://gitee.com/52itstyle/spring-boot-taskspring

版本区别(spring-boot 1.x and 2.x)

这里只是针对这两个项目异同作比较,固然spring-boot 2.x版本升级还有很多须要注意的地方。sql

项目名称配置:数据库

# spring boot 1.x
server.context-path=/quartz
# spring boot 2.x
server.servlet.context-path=/quartz
复制代码

thymeleaf配置:bootstrap

#spring boot 1.x
spring.thymeleaf.mode=LEGACYHTML5
#spring boot 2.x
spring.thymeleaf.mode=HTML
复制代码

Hibernate配置:bash

# spring boot 2.x JPA 依赖 Hibernate 5
# Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.
spring.jpa.hibernate.naming.strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
# Hibernate 5
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
复制代码

quartz配置:

# spring boot 2.x 已集成Quartz,无需本身配置
spring.quartz.job-store-type=jdbc
spring.quartz.properties.org.quartz.scheduler.instanceName=clusteredScheduler
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
spring.quartz.properties.org.quartz.jobStore.isClustered=true
spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000
spring.quartz.properties.org.quartz.jobStore.useProperties=false
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=10
spring.quartz.properties.org.quartz.threadPool.threadPriority=5
spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
复制代码

默认首页配置:

/** * 配置首页 spring boot 1.x * 建立者 小柒2012 * 建立时间 2017年9月7日 */
@Configuration
public class MyAdapter extends WebMvcConfigurerAdapter{
    @Override
    public void addViewControllers( ViewControllerRegistry registry ) {
        registry.addViewController( "/" ).setViewName( "forward:/login.shtml" );
        registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
        super.addViewControllers( registry );
    } 
}
复制代码
/** * 配置首页(在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter以被废弃 * 建议实现WebMvcConfigurer接口) * 建立者 小柒2012 * 建立时间 2018年4月10日 */
@Configuration
public class MyAdapter implements WebMvcConfigurer{
    @Override
    public void addViewControllers( ViewControllerRegistry registry ) {
        registry.addViewController( "/" ).setViewName( "forward:/login.shtml" );
        registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
    } 
}
复制代码

待解决问题:

/** * Set a strategy for handling the query results. This can be used to change * "shape" of the query result. * * @param transformer The transformer to apply * * @return this (for method chaining) * * @deprecated (since 5.2) * @todo develop a new approach to result transformers */
	@Deprecated
	Query<R> setResultTransformer(ResultTransformer transformer);
复制代码

hibernate 5.2 废弃了 setResultTransformer,说是要开发一种新的获取集合方法,显然目前还没实现,处于TODO状态。

项目源码: https://gitee.com/52itstyle/spring-boot-task

相关文章
相关标签/搜索