菜鸟笔记
提升您的技术认知

spring cache(缓存框架)-ag真人游戏

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

文章目录

  • 一、spring cache是什么?
  • 二、常用注解
  • 三、使用步骤
    • 1.导入依赖
    • 2.@cacheput的使用
    • 3.@cacheable的使用
    • 4.@cacheevict的使用
    • 5.@enablecaching的使用
  • 总结

一、spring cache是什么?

spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
spring cache提供了一层抽象,底层可以切换不同的缓存实现,例如:

  • ehcache
  • caffeine
  • redis

二、常用注解

三、使用步骤

1.导入依赖

spring cache缓存框架的maven导入:


            org.springframework.boot
            spring-boot-starter-cache

spring cache缓存中间件的导入:


            org.springframework.boot
            spring-boot-starter-data-redis

总体pom文件如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.3
        
    
    com.itheima
    springcache-demo
    1.0-snapshot
    
        11
        11
    
    
        
            org.springframework.boot
            spring-boot-starter-web
            compile
        
        
            org.projectlombok
            lombok
            1.18.20
        
        
            com.alibaba
            fastjson
            1.2.76
        
        
            commons-lang
            commons-lang
            2.6
        
        
            org.springframework.boot
            spring-boot-starter-cache
        
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.0
        
        
            com.alibaba
            druid-spring-boot-starter
            1.2.1
        
        
            com.github.xiaoymin
            knife4j-spring-boot-starter
            3.0.2
        
        
            org.springframework.boot
            spring-boot-starter-test
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.7.3
            
        
    

2.@cacheput的使用

@cacheput:将方法的返回值放到缓存中
案例代码:

    @postmapping
    //@cacheput(cachenames = "usercache",key = "#user.id")
    @cacheput(cachenames = "usercache",key = "#result.id")
    public user save(@requestbody user user){
  
        usermapper.insert(user);
        return user;
    }

其中#这种写法是spring规范的。
cachename:缓存名称,是个字符串
key:缓存数据
如果使用spring cache缓存数据,key的生成:usercache::缓存数据

3.@cacheable的使用

@cacheable:在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
案例代码:

    @getmapping
    @cacheable(cachenames = "usercache",key = "#id")//key的生成:usercache::10
    public user getbyid(long id){
  
        user user = usermapper.getbyid(id);
        return user;
    }

4.@cacheevict的使用

@cacheevict:将一条或多条数据从缓存中删除
清理一条数据案例代码:

    @deletemapping
    @cacheevict(cachenames = "usercache",key="#id")//key的生成:usercache::10
    public void deletebyid(long id){
  
        usermapper.deletebyid(id);
    }

清理多条数据(cachenames定义的名字下的所有数据都删除)案例代码:

	@deletemapping("/delall")
    @cacheevict(cachenames = "usercache",allentries = true)
    public void deleteall(){
  
        usermapper.deleteall();
    }

5.@enablecaching的使用

@enablecaching:开启缓存注解功能,通常加在启动类上
案例代码:

@springbootapplication
@enabletransactionmanagement //开启注解方式的事务管理
@slf4j
@enablecaching//开启缓存注解功能
public class skyapplication {
  
    public static void main(string[] args) {
  
        springapplication.run(skyapplication.class, args);
        log.info("server started");
    }
}

总结

以上就是spring cache(缓存框架)的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

网站地图