Spring Boot 启动后运行代码

新手上路,请多包涵

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

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

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

在应用程序在 spring-boot 中运行后,是否有更好的事件可以使用,或者运行代码的更好方法?

原文由 stewsters 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 503
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
    }
}

原文由 Anton Bessonov 发布,翻译遵循 CC BY-SA 3.0 许可协议

就这么简单:

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

测试版本 1.5.1.RELEASE

原文由 cahen 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题