Spring Boot项目启动时执行初始化方法
在项目中,一般在进行缓存预热时,会在项目启动时将部分热点数据存入Redis。
实现步骤、导入Redis依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.3.9.RELEASE</version>
</dependency>
实现InitializingBean
接口,重写afterPropertiesSet()
方法,在项目启动时会执行afterPropertiesSet()
方法。
/**
* 项目启动时执行该方法
* @throws Exception
*/
@Override
public void afterPropertiesSet() throws Exception {
List<Item> list = itemService.list();
list.stream().map(item->{
try {
String itemJSON = MAPPER.writeValueAsString(item);
//保存到Redis
stringRedisTemplate.opsForValue().set("item:id:"+item.getId(),itemJSON);
return item;
} catch (JsonProcessingException e) {
e.printStackTrace();
return null;
}
}).collect(Collectors.toList());
List<ItemStock> itemStockList = itemStockService.list();
itemStockList.stream().map(itemStock->{
try {
String itemJSON = MAPPER.writeValueAsString(itemStock);
//保存到Redis
stringRedisTemplate.opsForValue().set("item:stock:id:"+itemStock.getId(),itemJSON);
return itemStock;
} catch (JsonProcessingException e) {
e.printStackTrace();
return null;
}
}).collect(Collectors.toList());
}
项目启动时可以看见查询数据库的日志:
Redis中也存在缓存数据: