SpringBoot从入门到精通04-Cache

SpringBoot自动配置了许多组件,缓存是其中之一。在SpringBoot中使用缓存只需简单写注解。文章介绍了缓存的使用及配置顺序加载,还补充了定义多个CacheManager时,可通过@Parimary指定主要的,用@Qualifier指定使用的CacheManager。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

SpringBoot为我们自动配置了许多组件,当然缓存也是必不可少的。在SpringBoot中我们使用缓存只需要简单的写注解即可 这里我只讲讲如何使用 感兴趣的朋友可以看下源码 org.springframework.boot.autoconfigure.cache

 

1、使用

 

	/**
	*Cacheable属性
	*cacheNames/value:缓存组件名字CacheManager管理的多个Cache
	*key:Cache的key
	*keyGenerator:ket的生成器,可以自己定义key的id
	*cacheManager:指定缓存管理器
	*condition:指定条件符合条件在缓存
	*unless:否定缓存当unless指定的条件=true就不会缓存还可以根据结果进行缓存
	*sync:是否使用异步模式
	*
	*SpringcCache默认cachemanager是ConCurrentMapCacheManager 默认cache是ConCurrentMapCache
	*
	*过程:
	*默认使用方法参数的值作为key去从Cache中取没有就执行方法然后缓存有就直接返回缓存
	*@return
    */
    //查询全部
	@Cacheable(cacheNames="emps")
	public List<Employee> getAllEmp(String args){
	    return employeeMapper.selectByExample(null);
	}
	
	//按id查询
	@Cacheable(cacheNames="emps",key="#id",condition="#id>0")//id大于0才缓存j结果不为空才缓存
	    public Employee getEmpByid(Integer id){
	    return employeeMapper.selectByPrimaryKey(id);
	}
	
	//更新
	@CachePut(value="emps",key="#employee.id")//方法执行完成后更新emps中key为employee.id的数据
	public Employe eupdateByid(Employee employee){
	    employeeMapper.updateByPrimaryKey(employee);
	    return employee;
	}
	
	/**
	*方法执行后清除缓存key默认是参数
	*beforeInvocation:缓存清除是否在方法执行之前执行如=true如果当前方法出异常不管方法是否出错都会执行清除
	*@paramid
	*/
	//删除
	@CacheEvict(value="emps",key="#id"/*,allEntries=true*/)//allEntries=true*删除所有缓存
	public int delEmployee(Integerid){
	    int i = employeeMapper.deleteByPrimaryKey(id);
	    returni;
        }

@Caching

//指定多个cacheAble 和put、CacheEvict

 

2、配置顺序加载

 

 补充:

2、定义多个CacheManager时

@Parimary指定主要CacheManager

@Qualifier("xxxCacheManager")只使用这个CacheManager

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值