SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

基於spring-boot 2.x + quartz 的CRUD任務管理系統,適用於中小項目。

基於spring-boot +quartz 的CRUD任務管理系統:

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

開發環境

JDK1.8、Maven、Eclipse

技術棧

SpringBoot2.0.1、thymeleaf3.0.9、quartz2.3.0、iview、vue、layer、AdminLTE、bootstrap

啓動說明

  • 項目使用的數據庫爲MySql,選擇resources/sql中的tables_mysql_innodb.sql文件初始化數據庫信息。
  • 在resources/application.properties文件中替換爲自己的數據源。
  • 運行Application main方法啓動項目,項目啓動會自動創建一個測試任務 見:com.itstyle.quartz.config.TaskRunner.java。
  • 項目訪問地址:http://localhost:8080/task

項目截圖

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

SpringBoot2.x開發案例之整合Quartz任務管理系統

項目源碼: https://gitee.com/52itstyle/spring-boot-task

版本區別(spring-boot 1.x and 2.x)

這裏只是針對這兩個項目異同做比較,當然spring-boot 2.x版本升級還有不少需要注意的地方。

項目名稱配置:

# spring boot 1.x
server.context-path=/quartz
# spring boot 2.x
server.servlet.context-path=/quartz

thymeleaf配置:

#spring boot 1.x
spring.thymeleaf.mode=LEGACYHTML5
#spring boot 2.x
spring.thymeleaf.mode=HTML

Hibernate配置:

# 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章