Spuštění kódu při startu Springu

Pokud potřebujete spusti určitý kód po naběhnutí Springu, můžete použít CommandLineRunner. Je to rozhraní, které indikuje beanu, která má být spuštěna jakmile je ve Spring aplikaci.

Interface used to indicate that a bean should run when it is contained within a SpringApplication. Multiple CommandLineRunner beans can be defined within the same application context and can be ordered using the Ordered interface or Order @Order annotation.

Zde je jednoduchý příklad, kdy si vytvoříme konfigurační třídu s názvem SpringDataConfig.

@Configuration
class SpringDataConfig {

    @Bean
    fun myCommandLineRunner(): CommandLineRunner {
        return CommandLineRunner {
            println("Hello World!")
        }
    }
}

CommandLineRunner nám dává k dispozici také argumenty zadané při spuštění programu.

@Configuration
class SpringDataConfig {

    @Bean
    fun myCommandLineRunner(): CommandLineRunner {
        return CommandLineRunner { args ->
            println("Printing command line arguments")
            for (arg in args) {
                println(arg)
            }
        }
    }
}

Pokud v předchozím případě zadáme při spuštění programu hello world, bude výsledek následující:

Printing command line arguments
hello
world

Napsat komentář