Rumah > Java > javaTutorial > teks badan

Bagaimana untuk melaksanakan Springboot selepas permulaan

WBOY
Lepaskan: 2023-06-03 11:21:39
ke hadapan
899 orang telah melayarinya

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);
    }
}
Salin selepas log masuk

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));
    }
}
Salin selepas log masuk

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());
        }
    }
}
Salin selepas log masuk

. 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");
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!