В Spring Boot мы можем создать компонент CommandLineRunner
для запуска кода при полном запуске приложения.
package com.mkyong; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @SpringBootApplication public class StartBookApplication { public static void main(String[] args) { SpringApplication.run(StartBookApplication.class, args); } // Injects a repository bean @Bean CommandLineRunner initDatabase(BookRepository repository) { return args -> { repository.save( new Book("A Guide to the Bodhisattva Way of Life") ); }; } // Injects a ApplicationContext @Bean CommandLineRunner initPrint(ApplicationContext ctx) { return args -> { System.out.println("All beans loaded by Spring Boot:\n"); Listbeans = Arrays.stream(ctx.getBeanDefinitionNames()) .sorted(Comparator.naturalOrder()) .collect(Collectors.toList()); beans.forEach(x -> System.out.println(x)); }; } // Injects nothing @Bean CommandLineRunner initPrintOneLine() { return args -> { System.out.println("Hello World Spring Boot!"); }; } }
P.S Протестирован с пружинным ботинком 2
Рекомендации
Оригинал: “https://mkyong.com/spring-boot/spring-boot-run-code-when-the-application-starts/”