可以实现接口 ApplicationRunner 或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法。
import javax.annotation.PostConstruct;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Component;...
在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据等等。 在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了。 创建ApplicationListener 这里以填充部分测试数据为例子,首先实现ApplicationStartup类。 1 2 3 4 5 6 7 8 publicclassA...
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.S...
CommandLineRunner接口实际上是Spring Boot对Spring框架生命周期管理的一个扩展,通过对接口的实现,我们可以在Spring Boot应用启动后的特定阶段执行自定义的初始化逻辑。 示例: @ComponentpublicclassMyCommandLineRunnerimplementsCommandLineRunner{@Overridepublicvoidrun(String... args)throwsException {...
如果你希望在SpringApplication启动后立刻执行特定任务,可以实现ApplicationRunner,CommandLineRunner 中任意接口(这也是Spring官方推荐的方式,而不是使用监听Spring的生命周期事件)。 这两个接口都只有一个run 方法,都是在SpringApplication.run方法完成之前调用,ApplicationRunner 和 CommandLineRunner 的执行顺序可以通过@Order指...
CommandLineRunner是一个接口,通过实现它,我们可以在Spring 应用成功启动之后执行一些代码片段 代码语言:javascript 复制 @Slf4j @Component @Order(2)publicclassMyCommandLineRunnerimplementsCommandLineRunner{@Overridepublicvoidrun(String...args)throws Exception{log.info("MyCommandLineRunner order is 2");if(args...
如果想要指定启动方法执行的顺序,可以通过实现org.springframework.core.Ordered接口或者使用org.springframework.core.annotation.Order注解来实现。 这里我们以ApplicationRunner 为例来分别实现。 Ordered接口: packagecom.springboot.study;importorg.springframework.boot.ApplicationArguments;importorg.springframework.boot.Appli...
目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用@PostConstruct注解实现,当然也可以去实现Spring的ApplicationRunner与CommandLineRunner接口去实现启动后运行的功能。在这里整理...