Spring Boot 提供了 CommandLineRunner 接口,可以用于在应用程序启动时执行一些初始化操作,例如初始化数据库数据、加载配置文件、预热缓存等。通过实现 CommandLineRunner 接口,您可以很方便地在应用程序启动后执行所需的初始化任务。以下是如何使用 CommandLineRunner 初始化数据的示例:

1. 创建初始化类

首先,创建一个实现 CommandLineRunner 接口的初始化类,并在其中实现初始化逻辑。

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class MyDataInitializer implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        // 在此处编写初始化数据的逻辑
        System.out.println("Initializing data...");
        // 例如:初始化数据库数据、加载配置文件、预热缓存等
    }
}

2. 初始化逻辑

run 方法中编写初始化逻辑。这里可以执行各种初始化任务,例如读取文件、调用其他服务、初始化数据库等。

@Override
public void run(String... args) throws Exception {
    // 初始化数据库数据
    userRepository.save(new User("John Doe", "john@example.com", "password"));
    userRepository.save(new User("Jane Smith", "jane@example.com", "password"));

    // 加载配置文件
    String apiBaseUrl = configService.getApiBaseUrl();
    System.out.println("API Base URL: " + apiBaseUrl);

    // 预热缓存
    cacheService.preheatCache();
}

3. 注册初始化类

由于初始化类实现了 CommandLineRunner 接口,并被标记为 @Component,Spring Boot 会在应用程序启动时自动执行 run 方法。

4. 启动应用程序

现在,当您启动应用程序时,run 方法中的初始化逻辑将自动执行,从而实现数据的初始化和其他所需的任务。

通过使用 Spring Boot 的 CommandLineRunner,您可以在应用程序启动时方便地执行初始化任务,确保应用程序在启动后处于正确的状态。这种方法适用于各种初始化任务,无论是初始化数据库数据,还是加载配置文件或预热缓存等。