Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan Springboot selepas permulaan

Bagaimana untuk melaksanakan Springboot selepas permulaan

WBOY
WBOYke hadapan
2023-06-03 11:21:39902semak imbas

1. Anotasi @PostConstruct

Menggunakan anotasi @PostConstruct ialah cara yang paling biasa ialah jika kaedah yang dilaksanakan mengambil masa terlalu lama, projek tidak akan dapat menyediakan perkhidmatan semasa pelaksanaan. kaedah.

@Component
public class StartInit {
//
//    @Autowired   可以注入bean
//    ISysUserService userService;

    @PostConstruct
    public void init() throws InterruptedException {
        Thread.sleep(10*1000);//这里如果方法执行过长会导致项目一直无法提供服务
        System.out.println(123456);
    }
}

2. Antara muka CommandLineRunner

Laksanakan antara muka CommandLineRunner dan kemudian panggil kaedah yang perlu dipanggil dalam kaedah run Kelebihannya ialah apabila kaedah dilaksanakan, projek telah dimulakan dan perkhidmatan boleh disediakan seperti biasa.

Pada masa yang sama, kaedah ini juga boleh menerima parameter, dan boleh melakukan beberapa pemprosesan berdasarkan parameter yang diluluskan semasa projek dimulakan: java -jar demo.jar arg1 arg2 arg3.

@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println(Arrays.toString(args));
    }
}

3. Laksanakan antara muka ApplicationRunner

Kaedah pelaksanaan ApplicationRunner dan CommandLineRunner pada asasnya adalah serupa.

Satu-satunya perbezaan ialah format parameter yang diluluskan pada permulaan CommandLineRunner tidak mempunyai sebarang sekatan pada format parameter Format parameter antara muka ApplicationRunner mestilah: –key=value

@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        Set<String> optionNames = args.getOptionNames();
        for (String optionName : optionNames) {
            List<String> values = args.getOptionValues(optionName);
            System.out.println(values.toString());
        }
    }
}

. 4. Laksanakan ApplicationListener

Melaksanakan antara muka ApplicationListener dan melaksanakan antara muka ApplicationRunner dan CommandLineRunner tidak menjejaskan perkhidmatan dan boleh menyediakan perkhidmatan secara normal Beri perhatian kepada acara yang dipantau, biasanya ApplicationStartedEvent atau ApplicationReadyEvent mungkin tidak disuntik ke dalam kacang.

@Component
public class ApplicationListenerImpl implements ApplicationListener<ApplicationStartedEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("listener");
    }
}

5. Susunan pelaksanaan empat kaedah

Kaedah anotasi @PostConstruct sentiasa dilaksanakan dahulu

Jika acara ApplicationStartedEvent didengari, ia pasti akan berlaku sebelum ini pelaksanaan CommandLineRunner dan ApplicationRunner.

Jika anda mendengar acara ApplicationReadyEvent, ia pasti akan dilaksanakan selepas CommandLineRunner dan ApplicationRunner.

CommandLineRunner dan ApplicationRunner lalai kepada ApplicationRunner melaksanakan terlebih dahulu Jika kedua-dua pihak menyatakan @Order, mereka akan dilaksanakan mengikut saiz @Order, dengan yang lebih besar dilaksanakan terlebih dahulu.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan Springboot selepas permulaan. 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