在Spring / Maven

时间:2017-06-27 14:35:31

标签: java spring maven cron

我有一个使用 maven spring framework 上开发的应用程序。我有很多模块(每个模块都有自己的 pom.xml 文件),我有通用的 pom.xml 来编译整个项目。

使用 maven 我编译了.war文件并将其部署在 Jetty 服务器中,但现在我遇到了另一个问题。我需要配置一个每隔几分钟就会执行一些代码的函数。 我尝试将其配置为at the following link,因此:

我编辑了特定的pom.xml文件,我添加了这个:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>1.2.1.RELEASE</version>
</dependency>

在依赖项列表中,我在插件列表中添加了这个:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

我在同一模块中创建了一个定义此类的文件:

@Component
public class ScheduledTasks {
  private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedDelay = 5000)
    public void reportCurrentTime() {
        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

但它对我不起作用。日志不打印任何内容。 我已经在这个问题上苦苦挣扎了一段时间但我没有设法找到任何解决方案,同时也看看StackOverflow上的其他相关问答。

我做错了什么?我该如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要在主配置中启用EnableScheduling

@EnableScheduling
.....
..... other config annotaions
public class ApplicationConfig {
}

答案 1 :(得分:0)

您应该使用@Component@Service替换@EnableScheduling来解决问题。

@Service
@EnableScheduling
public class ScheduledTasks {
    . . .
}