Es gibt mehrere Probleme mit diesem Stück Code:
- Ihr Frühling Boot-Anwendung nicht mit
@SpringBootApplication
(oder @EnableAutoConfiguration
) gekennzeichnet ist. Daher wird die automatische Konfiguration überhaupt nicht aktiviert (Spring Boot startet Ihre App, macht aber nichts anderes als grundlegende Dinge wie die Vorbereitung von env usw.). In bestimmten Fällen ist das völlig in Ordnung, aber das ist wahrscheinlich nicht das, was Sie wollen.
- Sie haben die Aufgabe direkt in Ihrer App markiert. Es ist für Demo in Ordnung, aber es wäre besser, diese Logik in seiner eigenen Klasse zu bewegen
So Ihre Frage zu beantworten: SchedulingProjectApplication
ist die Wurzel Quelle Ihrer Anwendung, aber es ist nur eine einfache POJO. Es gibt nichts, was den Container anweist, es zu verarbeiten. Normalerweise ist die App ist ein @Configuration
(Sie eines der @EnableXYZ
auf sie verwenden können, können Sie zusätzliche Bohnen definieren usw.
Wenn Sie @SpringBootApplication
auf Ihrer Klasse hinzufügen, wird es jede @Component
im selben Paket Ihrer Anwendung scannen (. und alle Unterpakete)
Mehr Details über Codestruktur in the documentation
Ein Grund/einfache Struktur für Sie sei:
package com.example.foo;
@SpringBootApplication
@EnableScheduling
public class SchedulingProjectApplication {
public static void main(String[] args) {
SpringApplication.run(SchedulingProjectApplication.class, args);
}
}
Und
package com.example.foo;
@Component
public class SchedulingLogger {
private static final Logger log =
LoggerFactory.getLogger(SchedulingLogger.class);
@Scheduled(fixedDelay = 6000)
public void r()
{
log.info("Start- main-job");
log.info("stop-main-job");
}
}
Es gibt andere Dinge, die Sie in Bezug auf Konfiguration (wie moving decisions outside of your @SpringBootApplication
if you use slicing) bewusst sein sollten.
Dies ist zu Frühling, um diese Datei beim Hochfahren zu scannen. Spring liest diese Datei nur, wenn sie eine der Spring-Anmerkungen enthält. Und nur wenn es scannt, kann es lesen, dass Sie einen Scheduler konfiguriert haben und planen, – pvpkiran