代码已提交到Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/SpringBoot-Cache-Demo
接下来讲解SpringBoot是如何使用缓存的,以及关于缓存文件的配置。
1.Spring使用缓存的步骤 1.1 添加Maven依赖
org.springframework.boot
spring-boot-starter-cache
1.2 新建ehcache.xml文件
ehcache.xml文件放在classpath目录下,即src/main/resources/ehcache.xml
1.3 代码使用cacheable
@CacheConfig(cacheNames = "baseCache")
public interface UserMapper {
@Select("SELECT * FROM t_user WHERE NAME = #{name}")
@Cacheable
User findByName(@Param("name") String name);
@Insert("INSERT INTO t_user(uuid,name, age) VALUES(#{uuid},#{name}, #{age})")
int insert(@Param("uuid") String uuid, @Param("name") String name, @Param("age") Integer age);
}
1.4 Controller 新增接口验证(添加、查询和移除缓存)
package com.ylw.springboot.controller;
import com.ylw.springboot.bean.User;
import com.ylw.springboot.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class CacheController {
@Autowired
private CacheManager cacheManager;
@Autowired
private UserMapper userMapper;
@RequestMapping("/addCache")
public String addCache() {
User user = userMapper.findByName("Dumas");
if(user == null){
return "fail";
}
return user.toString();
}
@RequestMapping("/getCache")
public String getCache() {
Cache baseCache = cacheManager.getCache("baseCache");
if(baseCache == null){
return "fail";
}
return baseCache.getNativeCache().toString();
}
@RequestMapping("/removeCache")
public String removeCache() {
cacheManager.getCache("baseCache").clear();
return "success";
}
}
1.5 启动类加入缓存@EnableCaching
1.先插入缓存,访问:http://localhost:8080/addCache,返回成功! 2.查询本地缓存,访问:http://localhost:8080/getCache,返回查询成功!
3.把缓存移除,访问:http://localhost:8080/removeCache,返回移除成功!
执行第二步骤,查询缓存,看看缓存是否还在?发现缓存已经被移除了。