springboot启动后加载热点数据到Redis

要在Spring Boot启动完成时加载数据到Redis,

1.CommandLineRunner 、ApplicationRunner

你可以使用CommandLineRunner接口或ApplicationRunner接口来实现。这两个接口都可以在Spring Boot应用程序启动完成后执行自定义的逻辑。
以下是使用CommandLineRunner接口的示例代码:

import org.springframework.boot.CommandLineRunner;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

@Component
public class RedisDataLoader implements CommandLineRunner {

 private final RedisTemplate<String, Object> redisTemplate;

   public RedisDataLoader(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

   @Override
  public void run(String... args) throws Exception {
        // 在这里调用加载数据到Redis的方法
        loadDataToRedis();
    }

   private void loadDataToRedis() {
        // 在这里实现加载数据到Redis的逻辑
        // 使用redisTemplate操作Redis
    }
}

在上面的示例中,RedisDataLoader类实现了CommandLineRunner接口,并重写了run()方法。在run()方法中,你可以调用loadDataToRedis()方法来加载数据到Redis。
确保在RedisDataLoader类中注入了RedisTemplate,以便与Redis进行交互。你可以使用构造函数注入或@Autowired注解进行依赖注入。
当Spring Boot应用程序启动完成后,run()方法将被调用,从而触发数据加载到Redis的逻辑。

2.ApplicationRunner接口

以下是使用ApplicationListener接口的示例代码:

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

@Component
@Order(1)//监听器执行顺序,越小优先级越高
public class RedisDataLoader implements ApplicationListener<ApplicationReadyEvent> {

    private final RedisTemplate<String, Object> redisTemplate;

    public RedisDataLoader(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        // 在这里调用加载数据到Redis的方法
        loadDataToRedis();
    }

    private void loadDataToRedis() {
        // 在这里实现加载数据到Redis的逻辑
        // 使用redisTemplate操作Redis
    }
}

在上面的示例中,RedisDataLoader类实现了ApplicationListener接口,并重写了onApplicationEvent()方法。在onApplicationEvent()方法中,你可以调用loadDataToRedis()方法来加载数据到Redis。
确保在RedisDataLoader类中注入了RedisTemplate,以便与Redis进行交互。你可以使用构造函数注入或@Autowired注解进行依赖注入。
当应用程序启动完成时,ApplicationReadyEvent事件将被触发,从而调用onApplicationEvent()方法,进而触发数据加载到Redis的逻辑。
使用监听器接口的好处是,你可以选择不同的事件来触发加载数据到Redis的逻辑。在上述示例中,我们使用了ApplicationReadyEvent事件,表示应用程序已经准备好接收请求,可以开始加载数据到Redis。
请注意,如果你在应用程序中使用了多个监听器接口,你需要确保它们的执行顺序符合你的需求。

你可能感兴趣的:(spring,boot,redis,mybatis)