Spring Boot-启动时从数据库读取数据的最佳方法

时间:2018-11-03 11:45:15

标签: spring-boot

我想在启动时从数据库读取数据到列表或映射。 哪种方法最好? Spring Boot版本是5。

下面的解决方案好吗?

@Component
public class ApplicationStartup 
implements ApplicationListener<ApplicationReadyEvent> {

  /**
   * This event is executed as late as conceivably possible to indicate that 
   * the application is ready to service requests.
   */
  @Override
  public void onApplicationEvent(final ApplicationReadyEvent event) {

    // here your code ...

    return;
  }

} 

我想将数据存储在静态类中,但是我怀疑这是最好的解决方案。

2 个答案:

答案 0 :(得分:1)

我不太了解这样做的动机,但是这样做可以使用@Component创建一个bean,然后在该bean中创建一个带有@PostConstruct批注的方法。您可以使用此方法做任何您想做的事情。

答案 1 :(得分:0)

在Spring启动上下文加载后,使用ApplicationRunner接口是运行代码的最佳方法。

@Component
public class ApplicationStartup implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {

    }
} 

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-spring-application.html#boot-features-command-line-runner