美文网首页
springboot--cache开发

springboot--cache开发

作者: 天野_d788 | 来源:发表于2019-12-15 16:54 被阅读0次

在程序中加上缓存, 是程序性能优化常用方法, 在springboot出现以前, 加缓存比较繁琐,近几日学习了下springboot中使用方法,发现相当简便,发个日志,记载下自已的一点总结.
目录:
一.添加cache所要做的准备工作
二.开启缓存注解
三. 常用的缓存注解
四. 总结

一.添加cache所要做的准备工作
1. 在pom.xml中引入cache开发需要的依赖包

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

二.开启缓存注解
在main函数上添加"@EnableCaching"注解,
@EnableCaching:开启基于注解的缓存
详细如下所示:

@MapperScan("com.dyjs.cache.dyspringboot.mapper")
@EnableCaching
@SpringBootApplication
public class DyspringbootNameApplication {
    public static void main(String[] args) {
        SpringApplication.run(DyspringbootNameApplication.class, args);
    }
}

三.常用的缓存注解
当前我自已的例子使用的标签有: @Cacheable/@CachePut/@CacheEvict/Caching/@CacheConfig, 一般这些标签我们加在 Sevice层上

说明: 各标签相关的参数说明可在百度中搜一下就有了, 我就不再啰嗦了, 只给出最简单的程序说明

  1. @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存, 先查询缓存,再查询db
    @Cacheable(value = "emp")
    public Employee getEmpById(Integer id) {
        System.out.println("查询 " + id + "号员工");
        Employee ret = employeeMapper.getEmpById(id);
        if (ret == null) {
            String msg = "没有查到 id=" + id + " 号员工";
            System.out.println(msg);
        }
        return ret;
    }
  1. @CachePut 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存,和 @Cacheable 不同的是,它每次都会触发真实方法的调用
    @CachePut(value = "emp", key = "#emp.id")
    public Employee updateEmpById(Employee emp) {
        System.out.println("更新 " + emp.getId() + "号员工, " + emp);
        employeeMapper.updateEmp(emp);
        return emp;
    }
  1. @CacheEvict 的作用 主要针对方法配置, 能够根据一定的条件对缓存进行清空
    public String clearCache() {
        System.out.println("清除缓存");
        return "清除缓存成功";
    }
  1. @CacheConfig的作用,主要针对类配置 @Cacheable()里面都有一个value=“xxx”的属性,这显然如果方法多了,写起来也是挺累的,
@CacheConfig(cacheNames = "emp")
@Service
public class EmployeeService {

四. 总结
本例只是一个本地缓存,使用起来相当方便, 目前自已也是刚刚摸索到这里.

相关文章

网友评论

      本文标题:springboot--cache开发

      本文链接:https://www.haomeiwen.com/subject/svtlnctx.html