引用

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-cache</artifactId>
  4. </dependency>

启动类

  1. @EnableCaching

cacheable

  1. @RequestMapping("/hello")
  2. @Cacheable(value="helloCache")
  3. public String hello(String name) {
  4. System.out.println("没有走缓存!");
  5. return "hello "+name;
  6. }
  • value:缓存的名称。
  • key:缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写;如果不指定,则缺省按照方法的所有参数进行组合。
  • condition:触发条件,只有满足条件的情况才会加入缓存,默认为空,既表示全部都加入缓存,支持 SpEL。
    1. @RequestMapping("/getUsers")
    2. @Cacheable(value="usersCache",key="#nickname",condition="#nickname.length() >= 6")
    3. public List<User> getUsers(String nickname) {
    4. List<User> users=userRepository.findByNickname(nickname);
    5. System.out.println("执行了数据库操作");
    6. return users;
    7. }

    CachePut

    更新
    1. @RequestMapping("/getPutUsers")
    2. @CachePut(value="usersCache",key="#nickname")
    3. public List<User> getPutUsers(String nickname) {
    4. List<User> users=userRepository.findByNickname(nickname);
    5. System.out.println("执行了数据库操作");
    6. return users;
    7. }

CacheEvict

清除缓存