spring-boot-task
На основе Spring Boot 2.x и Quartz разработана система управления CRUD-задачами, которая подходит для небольших и средних проектов.
Среда разработки JDK1.8, Maven, Eclipse.
Технологический стек SpringBoot 2.1.6, Thymeleaf 3.0.9, Quartz 2.3.0, iView, Vue, Layer, AdminLTE, Bootstrap.
Запуск системы
Различия версий (Spring Boot 1.x и 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. Не поддерживается с 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-09-07
*/
@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-04-10
*/
@Configuration
public class MyAdapter implements WebMvcConfigurer{
@Override
public void addViewControllers( ViewControllerRegistry registry ) {
registry.addViewController( "/" ).setViewName( "forward:/login.shtml" );
registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
}
}
Скриншоты проекта
Настройка интервала проверки кластера 20 секунд
spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval = 2000
После запуска двух проектов на разных портах (8081 и 8082) локально, обнаруживается, что только один из них работает. После завершения работы этого проекта, другой проект обнаруживает, что задача в кластере не выполнена и берёт её на себя.
2018-04-12 09:00:01.792 INFO 7488 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : ClusterManager: обнаружено 1 неудачных или перезапущенных экземпляров. 2018-04-12 09:00:01.793 INFO 7488 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : ClusterManager: сканирование неудачных текущих заданий экземпляра «itstyle-PC1523496348539». 2018-04-12 09:00:01.839 INFO 7488 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : ClusterManager: ... освобождено 1 полученное триггер(а).
Основные интерфейсы Quartz API включают:
Автор: 小柒2012
Добро пожаловать подписаться: https://blog.52itstyle.vip
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )