[SpringBoot] Fünf Möglichkeiten, Methoden nach dem Start auszuführen

Nach dem Start des SpringBoot-Projekts gibt es fünf Möglichkeiten, Methoden auszuführen:

1. Implementieren Sie die CommandLineRunner-Schnittstelle

Nach der Initialisierung des Projekts wird die Methode aufgerufen und der Dienst bereitgestellt.

@Component
public class StartInit2 implements CommandLineRunner {
    
    

    @Override
    public void run(String... args) throws Exception {
    
    
        System.out.println("CommandLineRunner====================");
    }
}

2. Implementieren Sie die ApplicationRunner-Schnittstelle

Identisch mit CommandLineRunner. Lediglich das Format der Parameterübergabe ist unterschiedlich. CommandLineRunner: keine Einschränkungen; ApplicationRunner: Schlüsselwert

@Component
public class StartInit3 implements ApplicationRunner {
    
    

    @Override
    public void run(ApplicationArguments args) {
    
    
        System.out.println("ApplicationRunner=================");
    }
}

3. Implementieren Sie die ApplicationListener-Schnittstelle

Nach der Initialisierung des Projekts wird die Methode aufgerufen und der Dienst bereitgestellt. Achten Sie auf die überwachten Ereignisse, normalerweise ApplicationStartedEvent oder ApplicationReadyEvent. Andere Ereignisse dürfen möglicherweise nicht in die Bean eingefügt werden.

@Component
public class StartInit4 implements ApplicationListener<ApplicationStartedEvent> {
    
    

    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
    
    
        System.out.println("ApplicationListener================ApplicationStartedEvent");
    }
}
  • Wenn das Ereignis abgehört wird ApplicationStartedEvent, wird ApplicationListener definitiv vor CommandLineRunner und ApplicationRunner ausgeführt.
  • Wenn das Ereignis abgehört wird ApplicationReadyEvent, wird ApplicationListener definitiv nach CommandLineRunner und ApplicationRunner ausgeführt.

Reihenfolge:
Standardmäßig wird ApplicationRunnerzuerst ausgeführt. Wenn beide Parteien angeben @Order, @Ordererfolgt die Ausführung in der Reihenfolge der Größe, wobei die kleineren zuerst ausgeführt werden.

Prinzip:

  1. Die run-Methode von SpringApplication führt die afterRefresh-Methode aus.
  2. Die Methode afterRefresh führt die Methode callRunners aus.
  3. Die Methode callRunners ruft alle Methoden auf, die die Schnittstellen ApplicationRunner und CommondLineRunner implementieren. Die Methode callRunners ruft alle Methoden auf, die die Schnittstellen ApplicationRunner und CommondLineRunner implementieren.

4. @PostConstruct-Annotation

Diese Methode wird während der Projektinitialisierung aufgerufen. Wenn die Ausführung der Geschäftslogik zeitaufwändig ist, kann der Projektstart fehlschlagen.

@Component
public class StartInit {
    
    

    @PostConstruct
    public void init() {
    
    
        System.out.println("@PostConstruct===============================");
    }

}

5. Implementieren Sie die InitializingBean-Schnittstelle

Diese Methode wird beim Start des Projekts aufgerufen

@Component
public class StartInit6 implements InitializingBean {
    
    

    @Override
    public void afterPropertiesSet() {
    
    
        System.out.println("InitializingBean====================");
    }

}

Supongo que te gusta

Origin blog.csdn.net/sco5282/article/details/126365408
Recomendado
Clasificación