Spring配置时间触发器的方法

来源:互联网 发布:js防水涂料厚度要求 编辑:程序博客网 时间:2024/06/03 18:45

如果实在看不懂参考这个网址:绝对比我写的要清楚明白,我是因为采用的公司的,不是自己写的,好多都复杂,我也不太会去除!!!

http://blog.csdn.net/zy_281870667/article/details/50446102


唉!!!我也不会,但我看了公司的项目,觉得不难可惜我不懂,所以我要复制下来一点点的捋顺---代码如下:


首先应该先写一个总的定时器,可我也没懂,所以先写简单分支触发器(我们公司一个Spring的xml,下面还有好多分支的xml,总的调用分支里的xml)

    现在分支的xml里配置定时器:

      <!-- 配置定时器 -->

          <bean id="定义配置定时器的名字"

                          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">//需要的定义的这个bean的路径

                 <property name="targetObject">

                       <ref local="自定义的Bean的路径,也就是我定义别的Bean的ID,假设路径就是ABC吧" />//在这里定义的请看下一个代码块

                </property>

               <property name="targetMethod">//这name对应的源码里的一个方法!我也不知道啥用

                      <value>timeClearVerifyCode</value>//value这里放入你要调用的这个类的方法名

               </property>

       </bean>

    <!--这里写的就是在上一个代码块中我自定义的Bean-->//看不懂的就认为我在这个代码块的作用是一个Bean对应一个类,被配置定时器执行时调用,这个总该懂吧

       <bean id="这个就是ID,因为协议,我就定成ABC" class="这里是我定义的ABC的路径">

              <property name="自定义的名字,不过这边起的的是对应底下ref调用的类名">

                     <ref bean="这里定义的路径是,调用总的xml文件里的一个Bean定义的Id" />//是不是很混乱?捋一下就是当我定时器被执行调用时,进入配置定时器的代码,然后

                     然后查找到我自定义的Bean,调用这个Bean对应的逻辑层声明的类,在这个类里我调用了执行层也就Dao里的一个类(它的Bean定义在总的xml里),所以才有                          这一行,看不懂就算了自行pass

              </property>

       </bean>


     定时器就完成了,下一步就是在什么时间触发,调用定时器

      <!--定义触发时间-->

     <bean id="这里定义的触发时间Bean的Id,用来被总触发器调用" class="org.springframework.scheduling.quartz.CronTriggerBean">

          <property name="jobDetail">

                 <ref bean=“对应配置定时器Id名字" />

          </property>

          <property name="cronExpression">

                 <value>0 1 0 * * ?</value>//调用触发器的时间,这里是凌晨一分调用;;;;;更多时间我会在最后补在最下面

         </property>

     </bean>//捋一捋思路,在定义的时间到了时调用我的定时器,定时器调用我的类


      现在是调度工厂,连接的定时器,你们可以从后往前捋一捋:调度工厂,里有定时器,在定时器时间到了时调用触发器,触发我定义的类

     <!--时间总管理,也可以是调度工厂-->

     <bean autowire="no"//这个是是否自动装配,这里选择否,当然可不写这个

             class="org.springframework.scheduling.quartz.SchedulerFactoryBean">//路径,对应的源码,看不懂啊哈哈

            <property name="自定义名字">//下面就对应的你定义的各个触发时间的Id,在list里可以写多个<ref>

                   <list>

                       <ref local="这里就是你的触发时间Bean的ID了" />

                   </list>

           </property>

      </bean>



        好了!一个触发器的大体流程基本写完了,下面我给大家找一找各个时间对应的代码方式

         算了懒得写了,我给你们两个网址,自己查询复制吧:

          http://www.cnblogs.com/pipi-changing/p/5697481.html

          http://www.cnblogs.com/jearay/p/3667906.html

         这个如果一个网址失效,可以查看另一个,我这样的煤灰都能看的懂,我想你们这些,煤块应该没问题的