程序猿的纸条屋

Springboot项目中使用缓存@Cacheable

2022-05-13  本文已影响0人  zhangyin

环境:Springboot 2.2.x

1

在pom.xml文件中增加以下内容:

        <!-- redis 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.2.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

2

在application-dev.properties文件中增加redis的配置信息,例如:

spring.redis.lettuce.pool.min-idle=100
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.database=2
spring.redis.password=xxxx
spring.cache.type=redis

注意最后一句:spring.cache.type=redis,缓存内容将被自动保存到redis中

3

开始coding,例如下面的例子中,系统会自动将loadAllTypes方法的返回结果缓存到redis中,缓存内容的key为:“DtxMedicineType”,下一次再次执行该方法时,会直接从缓存中取数据,而不是再从数据库中拿数据了;

    @Cacheable(cacheNames = "DtxMedicineType")
    public List<DtxMedicineType> loadAllTypes() {
        LambdaQueryWrapper<DtxMedicineType> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DtxMedicineType::getIsDeleted,0);
        queryWrapper.orderByAsc(DtxMedicineType::getOrderIdx);
        queryWrapper.select(
                DtxMedicineType::getMedicineTypeId,
                DtxMedicineType::getMedicineTypeName,
                DtxMedicineType::getOrderIdx);
        queryWrapper.last("limit 100");
        return baseMapper.selectList(queryWrapper);
    }
上一篇下一篇

猜你喜欢

热点阅读