springboot-整合mybatis-mysql-redis-quartz,到redis整合時就報錯

雖然解決了,但是至今仍然不知道什麼原因導致的報錯信息。
代碼根據網上其他大牛們的案列,不斷複製複製複製到自己的電腦。。。

項目最終在自己電腦上已經是可以運行的了,但是把代碼導入到公司電腦的時候,就報錯了。報錯信息如下:

 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.3.RELEASE)

2018-06-19 14:59:48.644  INFO 11996 --- [           main] c.b.demo.TestSqlMybatisApplication       : Starting TestSqlMybatisApplication on user-PC with PID 11996 (E:\test_sqlMore_mybatis_redis_quartz4\test_sqlMore_mybatis_redis_quartz4\target\classes started by user in E:\test_sqlMore_mybatis_redis_quartz4\test_sqlMore_mybatis_redis_quartz4)
2018-06-19 14:59:48.647  INFO 11996 --- [           main] c.b.demo.TestSqlMybatisApplication       : No active profile set, falling back to default profiles: default
2018-06-19 14:59:48.694  INFO 11996 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@327b636c: startup date [Tue Jun 19 14:59:48 CST 2018]; root of context hierarchy
2018-06-19 14:59:49.095  WARN 11996 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration]; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfigureRegistrar]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationSource
2018-06-19 14:59:49.111  INFO 11996 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-06-19 14:59:49.118 ERROR 11996 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration]; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfigureRegistrar]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationSource
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:648) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:303) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:638) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.lambda$processDeferredImportSelectors$2(ConfigurationClassParser.java:567) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at java.util.ArrayList.forEach(Unknown Source) ~[na:1.8.0_131]
    at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:563) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:188) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
    at com.bestwehotel.demo.TestSqlMybatisApplication.main(TestSqlMybatisApplication.java:13) [classes/:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfigureRegistrar]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationSource
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:130) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:150) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:628) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    ... 20 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationSource
    at java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:1.8.0_131]
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) ~[na:1.8.0_131]
    at java.lang.Class.getConstructor0(Unknown Source) ~[na:1.8.0_131]
    at java.lang.Class.getDeclaredConstructor(Unknown Source) ~[na:1.8.0_131]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:123) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    ... 22 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.data.repository.config.RepositoryConfigurationSource
    at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_131]
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_131]
    ... 27 common frames omitted

pom.xml的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<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.bestwehotel</groupId>
    <artifactId>test_sql_mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>test_sql_mybatis</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- web應用啓動器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        
        <!-- mysql驅動 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- 連接池 -->
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp-spring</artifactId>
            <version>0.8.0.RELEASE</version>
        </dependency>
        
        <!-- 整合redis -->
      <!--   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>1.5.9.RELEASE</version>
        </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.3.2.RELEASE</version>
        </dependency>
        
        <!-- 定時任務 -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.3</version>
        </dependency>
        

        <!-- MyBatis啓動器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.12</version>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <!-- 打jar包時如果不配置該插件,打出來的jar包沒有清單文件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

quartz.properties配置如下:

bonecp.jdbcUrl=jdbc:mysql://127.0.0.1:3306/springboot02?useUnicode=true&characterEncoding=utf8
bonecp.username=root
bonecp.password=root
bonecp.driverClass=com.mysql.jdbc.Driver
bonecp.minConnectionsPerPartition=6
bonecp.maxConnectionsPerPartition=150

#quartz集羣配置  
# ===========================================================================    
# Configure Main Scheduler Properties 調度器屬性    
# ===========================================================================  
#調度標識名 集羣中每一個實例都必須使用相同的名稱    
quartz.scheduler.instanceName=DefaultQuartzScheduler  
#ID設置爲自動獲取 每一個必須不同  
org.quartz.scheduler.instanceid=AUTO    
#============================================================================  
# Configure ThreadPool    
#============================================================================  
#線程池的實現類(一般使用SimpleThreadPool即可滿足幾乎所有用戶的需求)  
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool  
#指定線程數,至少爲1(無默認值)(一般設置爲1-100直接的整數合適)  
org.quartz.threadPool.threadCount = 25  
#設置線程的優先級(最大爲java.lang.Thread.MAX_PRIORITY 10,最小爲Thread.MIN_PRIORITY 1,默認爲5)   
org.quartz.threadPool.threadPriority = 6  
#============================================================================  
# Configure JobStore    
#============================================================================  
# 信息保存時間 默認值60秒   
org.quartz.jobStore.misfireThreshold = 60000  
#數據保存方式爲數據庫持久化  
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX  
#數據庫代理類,一般org.quartz.impl.jdbcjobstore.StdJDBCDelegate可以滿足大部分數據庫  
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate  
#JobDataMaps是否都爲String類型  
org.quartz.jobStore.useProperties = false  
#數據庫別名 隨便取  
org.quartz.jobStore.dataSource = myDS  
#表的前綴,默認QRTZ_  
org.quartz.jobStore.tablePrefix = QRTZ_  
#是否加入集羣  
org.quartz.jobStore.isClustered = true  
#調度實例失效的檢查時間間隔  
org.quartz.jobStore.clusterCheckinInterval = 20000 
相關代碼:

DialogJob.java

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

//需要交由spring管理
@Service("dialogJob")
public class DialogJob {
//@Autowired
//private QuestionService questionService;
//方法名在quartz定義
public void execute() throws Exception{
//具體執行業務
//  questionService.XXXXX();
    System.out.println("這裏是03的版本"+new Date());
}
}

InvokingJobDetailDetailFactory.java

import java.lang.reflect.Method;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class InvokingJobDetailDetailFactory extends QuartzJobBean{
     // 計劃任務所在類
     private String targetObject;
     // 具體需要執行的計劃任務
     private String targetMethod;
     private ApplicationContext ctx;
     protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
      try {
       Object otargetObject = ctx.getBean(targetObject);
       Method m = null;
       try {
        m = otargetObject.getClass().getMethod(targetMethod);
        m.invoke(otargetObject);
       } catch (SecurityException e) {
        e.printStackTrace();
       } catch (NoSuchMethodException e) {
        e.printStackTrace();
       }
      } catch (Exception e) {
       throw new JobExecutionException(e);
      }
     }
      
     public void setApplicationContext(ApplicationContext applicationContext) {
      this.ctx = applicationContext;
     }
      
     public void setTargetObject(String targetObject) {
      this.targetObject = targetObject;
     }
      
     public void setTargetMethod(String targetMethod) {
      this.targetMethod = targetMethod;
     }
    }

QuartzConfig.java

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;


@Configuration
//@ConfigurationProperties("/quartz.properties")
@PropertySource(value = "classpath:quartz.properties")
public class QuartzConfig {
 @Value("${quartz.scheduler.instanceName}")
 private String quartzInstanceName;
   
 @Value("${bonecp.driverClass}")
 private String myDSDriver;
   
 @Value("${bonecp.jdbcUrl}")
 private String myDSURL;
   
 @Value("${bonecp.username}")
 private String myDSUser;
   
 @Value("${bonecp.password}")
 private String myDSPassword;
   
 @Value("${bonecp.minConnectionsPerPartition}")
 private String myDSMaxConnections;
   
   
 /**
  * 設置屬性
  * @return
  * @throws IOException
  */
 private Properties quartzProperties() throws IOException {
  Properties prop = new Properties();
  prop.put("quartz.scheduler.instanceName", quartzInstanceName);
  prop.put("org.quartz.scheduler.instanceId", "AUTO");
  prop.put("org.quartz.scheduler.skipUpdateCheck", "true");
  prop.put("org.quartz.scheduler.jmx.export", "true");
    
  prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");
  prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.StdJDBCDelegate");
  prop.put("org.quartz.jobStore.dataSource", "quartzDataSource");
  prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");
  prop.put("org.quartz.jobStore.isClustered", "true");
    
  prop.put("org.quartz.jobStore.clusterCheckinInterval", "20000");
  prop.put("org.quartz.jobStore.dataSource", "myDS");
  prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");
  prop.put("org.quartz.jobStore.misfireThreshold", "120000");
  prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true");
  prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE");
    
  prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
  prop.put("org.quartz.threadPool.threadCount", "10");
  prop.put("org.quartz.threadPool.threadPriority", "8");
  prop.put("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread", "true");
    
  prop.put("org.quartz.dataSource.myDS.driver", myDSDriver);
  prop.put("org.quartz.dataSource.myDS.URL", myDSURL);
  prop.put("org.quartz.dataSource.myDS.user", myDSUser);
  prop.put("org.quartz.dataSource.myDS.password", myDSPassword);
//  System.out.println("myDSMaxConnections:" + myDSMaxConnections);
  prop.put("org.quartz.dataSource.myDS.maxConnections", myDSMaxConnections);
    
  prop.put("org.quartz.plugin.triggHistory.class", "org.quartz.plugins.history.LoggingJobHistoryPlugin");
  prop.put("org.quartz.plugin.shutdownhook.class", "org.quartz.plugins.management.ShutdownHookPlugin");
  prop.put("org.quartz.plugin.shutdownhook.cleanShutdown", "true");
  return prop;
 }
   
 @Bean
 public SchedulerFactoryBean schedulerFactoryBean(@Qualifier("dialogJobTrigger") Trigger cronJobTrigger) throws IOException {
  SchedulerFactoryBean factory = new SchedulerFactoryBean();
  // this allows to update triggers in DB when updating settings in config file:
  //用於quartz集羣,QuartzScheduler 啓動時更新己存在的Job,這樣就不用每次修改targetObject後刪除qrtz_job_details表對應記錄了
  factory.setOverwriteExistingJobs(true);
  //用於quartz集羣,加載quartz數據源
  //factory.setDataSource(dataSource);
  //QuartzScheduler 延時啓動,應用啓動完10秒後 QuartzScheduler 再啓動
  factory.setStartupDelay(10);
  //用於quartz集羣,加載quartz數據源配置
  factory.setQuartzProperties(quartzProperties());
  factory.setAutoStartup(true);
  factory.setApplicationContextSchedulerContextKey("applicationContext");
  //註冊觸發器
  factory.setTriggers(cronJobTrigger);
//  factory.setConfigLocation(new FileSystemResource(this.getClass().getResource("/quartz.properties").getPath()));
  return factory;
 }
   
   
 /**
  * 加載job
  * @return
  */
 @Bean
 public JobDetailFactoryBean updateDialogStatusJobDetail() {
  return createJobDetail(InvokingJobDetailDetailFactory.class, "updateDialogStatusGroup", "dialogJob");
 }
 
 /**
  * 加載觸發器
  * @param jobDetail
  * @return
  */
 @Bean(name = "dialogJobTrigger")
 public CronTriggerFactoryBean dialogStatusJobTrigger(@Qualifier("updateDialogStatusJobDetail") JobDetail jobDetail) {
  return dialogStatusTrigger(jobDetail, "0/5 * * * * ? ");
 }
 
 
 
 
 
/* //test
 @Bean
 public SchedulerFactoryBean testschedulerFactoryBean(@Qualifier("testJobTrigger") Trigger cronJobTrigger) throws IOException {
  SchedulerFactoryBean factory = new SchedulerFactoryBean();
  // this allows to update triggers in DB when updating settings in config file:
  //用於quartz集羣,QuartzScheduler 啓動時更新己存在的Job,這樣就不用每次修改targetObject後刪除qrtz_job_details表對應記錄了
  factory.setOverwriteExistingJobs(true);
  //用於quartz集羣,加載quartz數據源
  //factory.setDataSource(dataSource);
  //QuartzScheduler 延時啓動,應用啓動完10秒後 QuartzScheduler 再啓動
  factory.setStartupDelay(10);
  //用於quartz集羣,加載quartz數據源配置
  factory.setQuartzProperties(quartzProperties());
  factory.setAutoStartup(true);
  factory.setApplicationContextSchedulerContextKey("applicationContext");
  //註冊觸發器
  factory.setTriggers(cronJobTrigger);
//  factory.setConfigLocation(new FileSystemResource(this.getClass().getResource("/quartz.properties").getPath()));
  return factory;
 }
 
 
 *//**
  * 加載job
  * @return
  *//*
 @Bean
 public JobDetailFactoryBean testJobDetail() {
  return createJobDetail(InvokingJobDetailDetailFactory.class, "testJobStatusGroup", "testJob");
 }
 
 *//**
  * 加載觸發器
  * @param jobDetail
  * @return
  *//*
 @Bean(name = "testJobTrigger")
 public CronTriggerFactoryBean testJobTrigger(@Qualifier("testJobDetail") JobDetail jobDetail) {
  return dialogStatusTrigger(jobDetail, "0/5 * * * * ? ");
 }
 //test
*/
 
 

 
 
 /**
  * 創建job工廠
  * @param jobClass
  * @param groupName
  * @param targetObject
  * @return
  */
 private static JobDetailFactoryBean createJobDetail(Class<?> jobClass, String groupName, String targetObject) {
  JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
  factoryBean.setJobClass((Class<? extends Job>) jobClass);
  factoryBean.setDurability(true);
  factoryBean.setRequestsRecovery(true);
  factoryBean.setGroup(groupName);
  Map<String, String> map = new HashMap<>();
  map.put("targetObject", targetObject);
  map.put("targetMethod", "execute");
  factoryBean.setJobDataAsMap(map);
  return factoryBean;
 }
 
 /**
  * 創建觸發器工廠
  * @param jobDetail
  * @param cronExpression
  * @return
  */
 private static CronTriggerFactoryBean dialogStatusTrigger(JobDetail jobDetail, String cronExpression) {
  CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean();
  factoryBean.setJobDetail(jobDetail);
  factoryBean.setCronExpression (cronExpression);
  return factoryBean;
 }
}

解決方案:至今不知道爲什麼,改了spring-boot-starter-parent的版本爲2.0.0後居然就可以運行了。猜測是版本衝突/電腦配置哪裏出了問題。但是爲什麼在自己的電腦上2.0.3卻可以運行?

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