在Spring Boot应用程序启动时加载数据

时间:2017-11-08 07:22:05

标签: spring spring-mvc spring-boot servletcontextlistener

我希望在应用程序启动时加载一些数据并将它们存储在全局上下文中,以便我的所有配置和控制器类都可以从上下文中读取这些数据。

传统上,我使用ServletContextListener加载contextInitialized方法中的数据并将其存储在ServletContext中。例如,

public void contextInitialized(ServletContextEvent event) {
    // load data
    event.getServletContext()..setAttribute(...)
}

在我的控制器中,我只是注入ServletContext或使我的控制器实现ServletContextAware

实现这一目标的Spring Boot方式是什么?我可以考虑以下选项,但不完全确定如何将这些用于我的用例。

  • @PostConstruct(关于哪个bean?)
  • @Configuration(加载数据并以@Bean返回?)
  • 侦听ApplicationListener@EventListener
  • ContextRefreshedEventApplicationReadyEvent(如何将数据公开给我的控制器?我还想要@Configuration上的数据但是,这些事件发生在已经创建@Configuration中的bean之后)

0 个答案:

没有答案