springboot启动时加载数据到redis中去
时间: 2024-01-13 13:02:14 浏览: 190
案例实战-SpringBoot整合Redis实现缓存分页数据查询
在Spring Boot启动时加载数据到Redis中有多种方法,以下是两种常用的方法:
方法一:使用CommandLineRunner接口
在启动类中实现CommandLineRunner接口,并重写run方法,在该方法中调用需要加载数据到Redis的逻辑代码。例如:
```java
@SpringBootApplication
public class MyApplication implements CommandLineRunner {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
// 加载数据到Redis
loadDataToRedis(); }
private void loadDataToRedis() {
// 从数据库或其他数据源获取数据
List<String> dataList = getDataFromDatabase();
// 将数据存入Redis
redisTemplate.opsForList().leftPushAll("myDataList", dataList);
}
private List<String> getDataFromDatabase() {
// 从数据库获取数据的逻辑
// ...
return dataList;
}
}
```
方法二:使用@PostConstruct注解
在需要加载数据到Redis的类的方法上添加@PostConstruct注解,该方法会在Spring Bean初始化完成后自动执行。例如:
```java
@Service
public class MyService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@PostConstruct
public void loadDataToRedis() {
// 从数据库或其他数据源获取数据
List<String> dataList = getDataFromDatabase();
// 将数据存入Redis
redisTemplate.opsForList().leftPushAll("myDataList", dataList);
}
private List<String> getDataFromDatabase() {
// 从数据库获取数据的逻辑
// ...
return dataList;
}
}
```
阅读全文