一尘不染

Spring Boot启动后运行代码

java

我想在我的spring-boot应用程序开始监视目录更改后运行代码。

我尝试运行新线程,但此时@Autowired尚未设置服务。

我已经能够找到ApplicationPreparedEvent,它会在设置@Autowired注释之前触发。理想情况下,一旦应用程序准备处理http请求,我希望触发该事件。

在Spring Boot中启动应用程序后,是否有更好的事件可以使用,或者有更好的代码运行方式?


阅读 294

收藏
2020-03-21

共2个答案

一尘不染

尝试:

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {

    @SuppressWarnings("resource")
    public static void main(final String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);

        context.getBean(Table.class).fillWithTestdata(); // <-- here
    }
}
2020-03-21
一尘不染

就这么简单:

@EventListener(ApplicationReadyEvent.class)
public void doSomethingAfterStartup() {
    System.out.println("hello world, I have just started up");
}

在版本上测试 1.5.1.RELEASE

2020-03-21