Springboot项目中使用缓存@Cacheable

环境: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);
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容