mycat 垂直拆分

红太狼 2022-06-16 13:25 253阅读 0赞

1、pom.xml增加:

  1. <dependency>
  2. <groupId>org.quartz-scheduler</groupId>
  3. <artifactId>quartz</artifactId>
  4. <quartz.version>2.2.1</quartz.version>
  5. </dependency>

2、applicationContext.xml中增加如下内容:

  1. <bean id="loadReportJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  2. <property name="targetObject">
  3. <ref bean="moduleScheduleJob"/><!-- 目标bean:这里bean受spring管理 -->
  4. </property>
  5. <property name="targetMethod">
  6. <value>moduleSchedule</value><!-- 目标方法:bean里的方法 -->
  7. </property>
  8. </bean>
  9. <bean id="CronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  10. <property name="jobDetail" ref="loadReportJobMethod"></property>
  11. <property name="cronExpression" value="0/60 * * * * ?"></property><!-- 定时时间设置 -->
  12. </bean>
  13. <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  14. <property name="triggers">
  15. <list>
  16. <ref bean="CronTriggerFactoryBean"/>
  17. </list>
  18. </property>
  19. </bean>

3、Java文件(定时任务方法):

  1. package com.iflytek.epdcloud.demc.quartz.job;
  2. @Component
  3. public class ModuleScheduleJob{
  4. //目标方法
  5. public void moduleSchedule() {
  6. //省略方法内容
  7. }
  8. }

4、注意问题:ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean

a、报错示例:

  1. 2017-05-16 15:15:15.966 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Ignoring bean class loading failure for bean 'CronTriggerFactoryBean'
  2. org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.scheduling.quartz.CronTriggerBean] for bean with name 'CronTriggerFactoryBean' defined in URL [file:/C:/Program%20Files/apache-tomcat-8.0.9/wtpwebapps/demc-web/WEB-INF/classes/spring/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean
  3. at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1352) ~[AbstractBeanFactory.class:4.2.3.RELEASE]
  4. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:628) ~[AbstractAutowireCapableBeanFactory.class:4.2.3.RELEASE]
  5. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:597) ~[AbstractAutowireCapableBeanFactory.class:4.2.3.RELEASE]
  6. at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1445) ~[AbstractBeanFactory.class:4.2.3.RELEASE]
  7. at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:445) [DefaultListableBeanFactory.class:4.2.3.RELEASE]
  8. at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:415) [DefaultListableBeanFactory.class:4.2.3.RELEASE]
  9. at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:86) [PostProcessorRegistrationDelegate.class:4.2.3.RELEASE]
  10. at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:677) [AbstractApplicationContext.class:4.2.3.RELEASE]
  11. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:519) [AbstractApplicationContext.class:4.2.3.RELEASE]
  12. at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) [ContextLoader.class:4.2.3.RELEASE]
  13. at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) [ContextLoader.class:4.2.3.RELEASE]
  14. at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [ContextLoaderListener.class:4.2.3.RELEASE]
  15. at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760) [catalina.jar:8.0.9]
  16. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5184) [catalina.jar:8.0.9]
  17. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.9]
  18. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:8.0.9]
  19. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:8.0.9]
  20. at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_121]
  21. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
  22. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
  23. at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
  24. Caused by: java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean
  25. at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324) ~[catalina.jar:8.0.9]
  26. at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177) ~[catalina.jar:8.0.9]
  27. at org.springframework.util.ClassUtils.forName(ClassUtils.java:250) ~[ClassUtils.class:4.2.3.RELEASE]
  28. at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:394) ~[AbstractBeanDefinition.class:4.2.3.RELEASE]
  29. at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1397) ~[AbstractBeanFactory.class:4.2.3.RELEASE]
  30. at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1344) ~[AbstractBeanFactory.class:4.2.3.RELEASE]
  31. ... 20 common frames omitted

b、报错原因:

是因为quartz的配置信息用的是旧版本、而依赖的确是高版本的jar包
在quartz 1.8.6及以前版本的时候 调度触发器 依赖的类是 org.springframework.scheduling.quartz.CronTriggerBean
在2.xx版本之后就改为了org.springframework.scheduling.quartz.CronTriggerFactoryBean
因此当你依赖2.x.x版本之后只需将调度触发器的依赖类改为 org.springframework.scheduling.quartz.CronTriggerFactoryBean即可

c、解决方法示例:

http://blog.csdn.net/zml\_2015/article/details/55004041

发表评论

表情:
评论列表 (有 0 条评论,253人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据库水平垂直

    数据库水平垂直拆分 当数据库量非常大的时候,DB 已经成为系统瓶颈时就可以考虑进行水平垂直拆分了。 水平拆分 一般水平拆分是根据表中的某一字段(通常是主键 ID

    相关 垂直

    垂直拆分 概念 垂直拆分示例 垂直拆分的优点 垂直拆分的缺点 概念 垂直拆分是根据数据库里面的数据表的相关性进行拆分,比如:一个数据库里面