开发者社区> 问答> 正文

使用spring task定时器,被shiro拦截了,如何解决?

大家好,现在用spring task 做定时任务,注解实现方式,但是在启动后,等待时间到时,却报错了,个人感觉貌似被shiro的访问拦截了。 找遍了google, 百度,无法解决,希望得到帮助,本人在线等。
图片说明图片说明
screenshot
screenshot

展开
收起
小旋风柴进 2016-03-04 14:25:59 5448 0
1 条回答
写回答
取消 提交回答
  • spring定时器TimerTask用法:
    在tomcat服务启动,spring定时器容器加载时会执行定时器里的任务,可设置时间间隔和延迟执行时间,具体做法如下:

    定时器Java代码:

    package com.coalmine.desktop;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.TimerTask;
    public class Task extends  TimerTask {
     @Override
    //定时器入口,run()里面是你的任务作业
     public void run() {
      
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date date =  new Date();
      System.out.println(sdf.format(date) + "  执行TimerTask定时器===============");
      
     }
    }

    applicationContext.xml配置如下:

    <!-- spring定时任务配置 -->
     <bean id="deskTask" class="com.coalmine.desktop.Task"></bean>
     <bean id="scheduledTask"
      class="org.springframework.scheduling.timer.ScheduledTimerTask">
      <property name="timerTask">
       <ref bean="deskTask" />
      </property>
      <!--任务执行周期 5s (此处单位是毫秒)-->
      <property name="period">
       <value>5000</value>
      </property>
      <!--延时10s 执行任务 -->
      <property name="delay">
       <value>10000</value>
      </property>
     </bean>
     <!--启动定时器 -->
     <bean id="timerBean"
      class="org.springframework.scheduling.timer.TimerFactoryBean">
      <property name="scheduledTimerTasks">
       <list>
        <ref bean="scheduledTask" />
       </list>
      </property>
     </bean>

    OK,就这么简单,当启动服务后加载完定时器,延迟10秒后,每隔5秒执行一次run()

    2019-07-17 18:52:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多