Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan tugas tak segerak dalam springboot

Bagaimana untuk melaksanakan tugas tak segerak dalam springboot

WBOY
WBOYke hadapan
2023-05-14 15:07:061469semak imbas

Pengenalan kepada Spring Boot

Spring Boot ialah rangka kerja baharu yang disediakan oleh pasukan Pivotal Ia direka untuk memudahkan proses pembinaan dan pembangunan awal aplikasi Spring baharu. Rangka kerja menggunakan pendekatan ad hoc untuk konfigurasi, menghapuskan keperluan untuk pembangun untuk menentukan konfigurasi boilerplate. Untuk memahaminya dalam kata-kata saya, Spring Boot sebenarnya bukan rangka kerja baharu Ia mengkonfigurasi penggunaan banyak rangka kerja secara lalai, sama seperti Maven menyepadukan semua pakej Jar dan Spring Boot menyepadukan semua rangka kerja.

Ciri But Spring

1) Buat aplikasi Spring bebas;

2) Benamkan terus Tomcat, Jetty atau Undertow tanpa menggunakan fail WAR

3) Sediakan fail POM asas (pemula) untuk memudahkan konfigurasi Apache Maven; persekitaran, seperti penunjuk prestasi, maklumat aplikasi dan pemeriksaan kesihatan aplikasi; Nilai lalai juga boleh diubah suai untuk memenuhi keperluan tertentu.

7) Sebilangan besar projek lain adalah berdasarkan Spring Boot, seperti Spring Cloud.

Tugas tak segerak

Contoh:

Tulis kaedah helo dalam perkhidmatan dan tangguhkannya selama tiga saat

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

Biar Pengawal memanggil perniagaan ini

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

Apabila kita memulakan projek SpringBoot, kita akan mendapati bahawa ia akan mengambil masa tiga saat untuk bertindak balas ok.

Jadi, kita perlu menggunakan tugas tak segerak untuk menyelesaikan masalah ini. Sangat mudah untuk menambah anotasi.

Anotasi @Async pada kaedah helo

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

Dayakan fungsi anotasi tak segerak pada kelas permulaan SpringBoot

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

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

}

Masalah selesai, pelayan akan bertindak balas ke hadapan- tamatkan data serta-merta!

Semakin pokok itu mendambakan cahaya di tempat yang tinggi, semakin banyak akarnya akan bergerak ke bawah, ke arah tanah dan ke dalam kegelapan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tugas tak segerak dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam