[JAVA] Eine Reise zur Entschlüsselung von Spring's "GUIDES" Scheduling Tasks Edition.

Scheduling Tasks

Ich werde diese Seite entziffern.

Umgebung sts 3.8.4 Starten Sie sts und suchen Sie nach dem Zielprojekt unter "Datei" -> "Neu" -> "Import Spring Getting Started Content". Ich habe es importiert und seinen Betrieb bestätigt.

Hintergrund Ich lernte Spring Boot, aber ich beschloss, das Originaldokument zu lesen, ohne mich auf kommerzielle Bücher zu verlassen. Es ist alles auf Englisch, also habe ich Mühe, es zu lesen.

Java-Kenntnisse Informationen zu Oracle Java8 Silver

Ich schreibe es als Memorandum zum Lernen. Wenn Sie Ratschläge haben, wie z. B. zu korrigierende Punkte oder Ergänzungen, zögern Sie bitte nicht, uns zu kontaktieren.

Erstellen einer Komponente

ScheduledTasks.java


package hello;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduledTasks {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

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

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

Zunächst aus diesem Code. Durch Festlegen von "@ Component" kann es in der Hauptklasse von Application.java verwendet werden, die als Nächstes erstellt wird. Die Hauptklasse muss mit "@ SpringBootApplication" (einschließlich "@ ComponentScan") versehen sein. Auf diese Weise können Sie die Komponenten im selben Paket automatisch finden. Die hier erstellten Komponenten sind ebenfalls verfügbar.

Lesen Sie die ScheduledTasks-Methode

In dieser Klasse haben wir einen Mechanismus erstellt, mit dem das Protokoll alle 5 Sekunden auf der Konsole angezeigt wird. private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); Holen Sie sich den Logger bei.

LoggerFactory ist eine Protokollierungsbibliothek, die von den Entwicklern von Log4j erstellt wurde. Legen Sie ein Klassenobjekt einer Klasse fest, die einen Logger wie "ScheduledTasks.class" als Argument verwendet.

Dadurch kann log.info () standardmäßig auf der Konsole angezeigt werden.

Wenn Sie die Anmerkung "@Scheduled (fixedRate = 5000)" hinzufügen, wird die Methode regelmäßig ausgeführt. Wenn Sie eine Methode mit einem Argument versehen, tritt übrigens eine Ausnahme auf. Durch Angabe von "@ EnableScheduling" in der als nächstes zu erstellenden Datei wird die Methode mit "@ Scheduled" ausgeführt.

Ich werde das SimpleDateFormat und das Datum weglassen.

Erstellen von Application.java

Schauen wir uns als nächstes den Code von application.java an, der die Hauptmethode enthält.

Application.java


package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class);
    }
}

Erläuterung der Anmerkungen

Dieser Code ist mit "@ SpringBootApplication" versehen. Dies liest @ Configuration`` @ EnableAutoConfiguration`` @ EnableWebMvc`` @ ComponentScan als Set.

@ ComponentScan findet die gerade erstellte ScheduledTasks-Klasse. Mit "@ EnableScheduling" wird die mit "@Scheduled (fixedRate = 5000)" annotierte reportCurrentTime () -Methode regelmäßig ausgeführt. Anmerkungen scheinen eine komplexere Planung zu ermöglichen, indem "@Scheduled (cron =" ")" verwendet wird.

Lauf

Wenn Sie in sts auf den Projektnamen klicken und die Wiedergabetaste drücken, wird dieser automatisch kompiliert und ausgeführt.

screen.jpg

Alle 5 Sekunden werden Protokolle zur Konsole hinzugefügt.

Recommended Posts

Eine Reise zur Entschlüsselung von Spring's "GUIDES" Scheduling Tasks Edition.
Eine Reise, um Spring's "GUIDES" zu entschlüsseln, die eine RESTful Web Service Edition verbrauchen.