Maison  >  Article  >  Java  >  Comment implémenter des tâches asynchrones dans Springboot

Comment implémenter des tâches asynchrones dans Springboot

WBOY
WBOYavant
2023-05-14 15:07:061469parcourir

Introduction à Spring Boot

Spring Boot est un nouveau framework fourni par l'équipe Pivotal. Il est conçu pour simplifier le processus initial de construction et de développement de nouvelles applications Spring. Le framework utilise une approche ad hoc de la configuration, éliminant ainsi le besoin pour les développeurs de définir des configurations standard. Pour le comprendre selon mes mots, Spring Boot n'est en fait pas un nouveau framework. Il configure l'utilisation de nombreux frameworks par défaut, tout comme Maven intègre tous les packages Jar et Spring Boot intègre tous les frameworks.

Fonctionnalités Spring Boot

1) Créez des applications Spring indépendantes ;

2) Intégrez directement Tomcat, Jetty ou Undertow sans déployer de fichiers WAR ;

3) Fournissez les fichiers POM de base recommandés (démarreurs) pour simplifier la configuration d'Apache Maven ; 4) Configurez automatiquement le framework Spring en fonction des dépendances du projet autant que possible ;

5) Fournissez des fonctions qui peuvent être utilisées directement dans l'environnement de production, telles que des indicateurs de performance, des informations sur l'application et des contrôles de santé de l'application

6) Prêt pour le déballage ; à utiliser, pas de génération de code, pas besoin de configurer trop de xml. Les valeurs par défaut peuvent également être modifiées pour répondre à des besoins spécifiques.

7) Un grand nombre d'autres projets sont basés sur Spring Boot, comme Spring Cloud.

Tâche asynchrone

Exemple :

Écrivez une méthode hello dans le service et retardez-la de trois secondes

@Service
public class AsyncService {
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("数据正在处理!");
    }
}

Laissez le contrôleur appeler cette entreprise

@RestController
public class AsyncController {
    @Autowired
    AsyncService asyncService;
    @GetMapping("/hello")
    public String hello(){
        asyncService.hello();
        return "ok";
    }
}

Démarrez le projet SpringBoot et nous constaterons que la réponse sera ok après trois secondes.

Nous devons donc utiliser des tâches asynchrones pour résoudre ce problème. Il est très simple d'ajouter une annotation.

Annotez @Async sur la méthode hello

@Service
public class AsyncService {
    //异步任务
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("数据正在处理!");
    }
}

Activez la fonction d'annotation asynchrone sur la classe de démarrage SpringBoot

@SpringBootApplication
//开启了异步注解的功能
@EnableAsync
public class Sprintboot09TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(Sprintboot09TestApplication.class, args);
    }

}

Le problème est résolu, le serveur répondra instantanément aux données frontales !

Plus l'arbre aspire à la lumière en hauteur, plus ses racines descendront, vers le sol et dans les profondeurs de l'obscurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer