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。
请注意,如果你在应用程序中使用了多个监听器接口,你需要确保它们的执行顺序符合你的需求。

相关推荐

  1. springboot启动热点数据Redis

    2024-01-21 18:14:02       36 阅读
  2. springboot启动数据库数据内存

    2024-01-21 18:14:02       36 阅读
  3. SpringBoot启动自己的策略类容器中使用?

    2024-01-21 18:14:02       54 阅读
  4. js预和滚动底部数据实现

    2024-01-21 18:14:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 18:14:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 18:14:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 18:14:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 18:14:02       20 阅读

热门阅读

  1. 代码随想录day32 贪心算法训练

    2024-01-21 18:14:02       31 阅读
  2. Go语言协程使用

    2024-01-21 18:14:02       35 阅读
  3. Talking about your company

    2024-01-21 18:14:02       27 阅读
  4. 如何结合antd design pro 5 结合express 上传多个文件

    2024-01-21 18:14:02       32 阅读
  5. 大模型学习第六课

    2024-01-21 18:14:02       39 阅读
  6. [Linux使用] 网络工具

    2024-01-21 18:14:02       38 阅读