其他分享
首页 > 其他分享> > SpringCache使用-基础使用

SpringCache使用-基础使用

作者:互联网

一.引入jar   <!--springcache 2级缓存--> <dependency>    <groupId>io.ifa.chaos.starters</groupId>    <artifactId>chaos-starter-redis-caffeine-cache</artifactId>    <version>1.0</version> </dependency> <!--redis--> <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 二,修改application.yml   spring: application:  name: appcache cache:  cache-names: cachename redis:  host: 127.0.0.1  port: 6379 三.修改启动类   @EnableCaching           (加上这个注解) @SpringBootApplication public class CacheApplication {       public static void main(String[] args) {         SpringApplication.run(CacheApplication.class, args);     } }   四,编写Service package com.springcache.app.controller; import com.springcache.app.entity.Stu; import com.springcache.app.service.StuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;   import java.util.List;   /** * <p> * 前端控制器 * </p> * * @author ly * @since 2020-11-01 */ @Controller @RequestMapping("/stu") @ResponseBody public class StuController {   @Autowired private StuService stuService;   @Autowired private RedisTemplate<String,String> redisTemplate;   /** * @Cacheable(key="'stu'+#stu.id",value = "cachename") * * stu字符串+stu.id 当做Redis的Key 这个方法返回的结果集当做这个key的value。 * value = "cachename" 这个是application.yml 配置的缓存名称 * @Cacheable的作用场景为: * 首先会检查上述的Key是否存在,存在直接返回Key对应的缓存结果 * @param stu * @return */ @RequestMapping("/getStuInfo") @Cacheable(key="'stu'+#stu.id",value = "cachename") public List<Stu> getStuInfo(@RequestBody Stu stu) { List<Stu> list=stuService.list(); //redisTemplate.opsForValue().set("bb","123456"); System.out.println("Redis========Test========="+redisTemplate.opsForValue().get("bb")); return list; }     /** * @CachePut(key="'stu'+#stu.id",value = "cachename") * * stu字符串+stu.id 当做Redis的Key 这个方法返回的结果集当做这个key的value。 * value = "cachename" 这个是application.yml 配置的缓存名称 * @CachePut的作用场景为: * 检车上述的Key是否存在,存在不会返回缓存中的结果,依然会走业务逻辑查询数据库,不存在就将上述的key和方法返回的结果 * 缓存到Redis中,然后还是会走业务逻辑去查询数据库 * @param stu * @return */ @RequestMapping("/getStuInfoPut") @CachePut(key="'stu'+#stu.id",value = "cachename") public List<Stu> getStuInfoPut(@RequestBody Stu stu) { List<Stu> list=stuService.list(); //redisTemplate.opsForValue().set("bb","123456"); System.out.println("Redis========Test========="+redisTemplate.opsForValue().get("bb")); return list; }   /** * @CacheEvict(key="'stu'+#stu.id",value = "cachename") * * @CacheEvict会检车Key是否存在,存在就删除Key对应的缓存。 * @param stu * @return */ @RequestMapping("/getStuInfoEvict") @CacheEvict(key="'stu'+#stu.id",value = "cachename") public List<Stu> getStuInfoEvict(@RequestBody Stu stu) { List<Stu> list=stuService.list(); //redisTemplate.opsForValue().set("bb","123456"); System.out.println("Redis========Test========="+redisTemplate.opsForValue().get("bb")); return list; } }   五,总结  这里只是介绍了springcache简单使用,相信学会使用还是不难的嘿嘿,如果有问题,欢迎大家留言,我会在第一时间及时改正。    

标签:SpringCache,list,org,基础,springframework,stu,value,使用,import
来源: https://www.cnblogs.com/521315lvyy/p/13974917.html