[JAVA] Un voyage pour déchiffrer l'édition des tâches de planification "GUIDES" de Spring.

Scheduling Tasks

Je vais déchiffrer cette page.

environnement sts 3.8.4 Lancez sts et recherchez le projet cible dans "Fichier" -> "Nouveau" -> "Importer le contenu de démarrage Spring". Je l'ai importé et confirmé son fonctionnement.

Contexte J'apprenais Spring Boot, mais j'ai décidé de lire le document original sans me fier aux livres commerciaux. Tout est en anglais, donc j'ai du mal à le lire.

Compétences Java A propos d'Oracle Java8 Silver

Je l'écris comme un mémorandum d'apprentissage. Si vous avez des conseils, tels que des points à corriger ou des compléments, n'hésitez pas à nous contacter.

Créer un composant

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()));
    }
}

Tout d'abord, à partir de ce code. En définissant @ Component, il peut être utilisé dans la classe Main de Application.java pour être créé ensuite. La classe Main doit être annotée avec @ SpringBootApplication (y compris @ ComponentScan). Cela vous permettra de trouver automatiquement les composants dans le même package. Les composants que vous créez ici seront également disponibles.

Lire la méthode ScheduledTasks

Dans cette classe, nous avons créé un mécanisme pour afficher le journal sur la console toutes les 5 secondes. private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); Obtenez l'enregistreur à.

LoggerFactory est une bibliothèque de journalisation créée par les développeurs de Log4j. Définissez un objet Class d'une classe qui utilise un enregistreur, tel que ScheduledTasks.class, comme argument.

Cela permet à log.info () d'être affiché sur la console par défaut.

Si vous ajoutez l'annotation «@Scheduled (fixedRate = 5000)», la méthode sera exécutée périodiquement. Au fait, si vous annotez une méthode avec un argument, une exception se produira. En spécifiant @ EnableScheduling dans le fichier à créer ensuite, la méthode avec @ Scheduled sera exécutée.

Je vais omettre le SimpleDateFormat et la date.

Création de Application.java

Ensuite, regardons le code de application.java qui a la méthode main.

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);
    }
}

Explication des annotations

Ce code est annoté avec @ SpringBootApplication. Cela lit @ Configuration`` @ EnableAutoConfiguration`` @ EnableWebMvc`` @ ComponentScan` comme un ensemble.

@ ComponentScan trouvera la classe ScheduledTasks que vous venez de créer. Avec @ EnableScheduling, la méthode reportCurrentTime () annotée avec @Scheduled (fixedRate = 5000) sera exécutée périodiquement. Les annotations semblent permettre une planification plus complexe en utilisant @Scheduled (cron =" ").

Courir

En sts, si vous cliquez sur le nom du projet et appuyez sur le bouton de lecture, il sera automatiquement compilé et exécuté.

screen.jpg

Les journaux sont ajoutés à la console toutes les 5 secondes.

Recommended Posts

Un voyage pour déchiffrer l'édition des tâches de planification "GUIDES" de Spring.
Un voyage pour déchiffrer les «GUIDES» de Spring consommant une édition de service Web RESTful.