ApplicationStartedEvent:当应用启动且环境和上下文准备完成,但在CommandLineRunner和ApplicationRunner执行之前发布。可以用于执行在应用准备完成但未完全启动时的操作。 SpringApplicationRunListener:Spring Boot 内置的监听器,主要用于 SpringBoot 启动的整个过程。比如:初始化、环境准备、上下文准备和完全启动等多个阶段。 star...
当启动SpringBoot应用后,经过两步,会进入到new SpringApplication(primarySources).run(args)。 1、primarySources参数 primarySources参数实际为Spring Boot应用上下文的Configuration Class,在后面扫描配置类时起作用。 2、SpringApplication初始化 SpringApplication对象的初始化 具体操作包括: 首先初始化资源加载器,默认为null;...
一、入门级:启动main方法中添加初始化逻辑 在Spring Boot的main入口启动方法中,执行SpringApplication.run(LimitApplication.class, args)是可以返回ApplicationContext对象的,我们可以从ApplicationContext中获取指定的bean对象,执行初始化逻辑。 @SpringBootApplication(scanBasePackages = {"com.laowan.limit"}) public class...
在Spring Boot 中,选择合适的初始化方式取决于你的具体需求和初始化逻辑的复杂程度。@PostConstruct 和 InitializingBean 适合早期的、简单的初始化操作,而 CommandLineRunner 和 ApplicationRunner 更适合在应用完全启动后执行的复杂逻辑。了解这些初始化方式的执行顺序和特点,能够帮助你在项目中做出最佳选择,确保应用的平稳...
ApplicationFailedEvent事件在SpringBoot启动失败时触发,标志SpringBoot启动失败。 基于以上事件类型,我们可以监听ContextRefreshedEvent事件,初始化系统资源,以及监听ContextStoppedEvent事件来清理资源。 初始化资源: View Code 清理资源: View Code 3、@PostConstruct、@PreDestroy注解 ...
一、场景说明 SpringBoot应用启动后自动调用接口(或组件),做一些初始化操作。需要初始化操作的接口: 二、实现方式 2.1 实现方式一:@PostConstruct ...
2、SpringBoot的CommandLineRunner接口 当容器初始化完成之后会调用CommandLineRunner中的run()方法,同样能够达到容器启动之后完成一些事情。这种方式和ApplicationListener相比更加灵活,如下: 不同的CommandLineRunner实现可以通过@Order()指定执行顺序 可以接收从控制台输入的参数。
2、SpringBoot的CommandLineRunner接口 当容器初始化完成之后会调用CommandLineRunner中的run()方法,同样能够达到容器启动之后完成一些事情。这种方式和ApplicationListener相比更加灵活,如下: 不同的CommandLineRunner实现可以通过@Order()指定执行顺序 可以接收从控制台输入的参数。
1、@PostConstruct 不建议用来初始化数据。是在spring启动完成之前执行的,除非必要,不要用这两个去加载初始化数据。2、如果刚好可以在一个方法内执行 Spring 启动后的动作,可以让 SpringBoot 的启动类继承上述的某个接口,然后重写相应的方法即可。3、在数据初始化层面,不推荐@PostConstruct和ApplicationListener,原因是...