Heim > Java > javaLernprogramm > Hauptteil

So führen Sie Springboot nach dem Start aus

WBOY
Freigeben: 2023-06-03 11:21:39
nach vorne
843 Leute haben es durchsucht

1. Annotation @PostConstruct

Die Verwendung der Annotation @PostConstruct ist die häufigste Methode. Das Problem besteht darin, dass das Projekt während der Ausführung der Methode keine Dienste bereitstellen kann.

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

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

2. CommandLineRunner-Schnittstelle

Implementieren Sie die CommandLineRunner-Schnittstelle und rufen Sie dann die Methode auf, die in der Ausführungsmethode aufgerufen werden muss. Der Vorteil besteht darin, dass das Projekt initialisiert wurde und Dienste normal bereitgestellt werden können.

Gleichzeitig kann diese Methode auch Parameter akzeptieren und einige Verarbeitungen basierend auf den beim Starten des Projekts übergebenen Parametern durchführen: 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));
    }
}
Nach dem Login kopieren

3. Implementieren Sie die ApplicationRunner-Schnittstelle

Die Implementierungsmethoden von ApplicationRunner und CommandLineRunner sind grundsätzlich ähnlich.

Der einzige Unterschied besteht darin, dass beim Start von CommandLineRunner keine Einschränkungen hinsichtlich des Parameterformats bestehen: –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());
        }
    }
}
Nach dem Login kopieren

Four ApplicationListener implementieren und implementieren Sie die ApplicationRunner-Schnittstelle nicht auf den Dienst und können Sie auf die überwachten Ereignisse achten, normalerweise auf ApplicationStartedEvent oder ApplicationReadyEvent.

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

5. Die Ausführungsreihenfolge der vier Methoden

Die Annotationsmethode @PostConstruct wird immer zuerst ausgeführt

Wenn das ApplicationStartedEvent-Ereignis überwacht wird, wird es definitiv vor CommandLineRunner und ApplicationRunner ausgeführt.

Wenn Sie das ApplicationReadyEvent-Ereignis abhören, wird es definitiv nach CommandLineRunner und ApplicationRunner ausgeführt.

CommandLineRunner und ApplicationRunner führen standardmäßig ApplicationRunner zuerst aus. Wenn beide Parteien @Order angeben, werden sie in der Reihenfolge der Größe von @Order ausgeführt, wobei der größere zuerst ausgeführt wird.

Das obige ist der detaillierte Inhalt vonSo führen Sie Springboot nach dem Start aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!