springboot+Cache
阿新 • • 發佈:2019-01-23
一:快取
1.匯入需要依賴
core:Cache
web:web
Sql:mysql+Mybatis
2.搭建基本環境
建立資料庫
Student(學生表)
id int 主鍵:自增
name varchar(20) 姓名
gender bit 性別(true:女 false:男)
grade_id int 外來鍵(年級編號)
Grade(年級表)
id int 主鍵:自增
name varchar(20) 年級名次
3.建立javaBean(POJO)
@Data
public class Student {
private Integer id;
private String name;
private Boolean gender;
private Integer gradeId;
}
@Data
public class Grade {
private Integer id;
private String name;
}
4.整和mybatis
4.1 application.properties
#dataSource #spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mybatis spring.datasource.username=root spring.datasource.password=root #mybatis配置(開啟駝峰命名) mybatis.configuration.map-underscore-to-camel-case=true
4.2 mapper層編碼
@Mapper
public interface StudentMapper {
/**
* 根據id獲取到物件
* @param id 學生編號
* @return 學生物件
*/
@Select("select * from student where id=#{id}")
Student getStudentById(Integer id);
}
5.編碼controller
@RestController public class StudentContorller { @Autowired private StudentMapper studentMapper; @RequestMapping("/getById/{stuid}") public Student getById(@PathVariable("stuid") int stuid){ return studentMapper.getStudentById(stuid); } }
6.快取
6.1快取所需要的註解--開啟應用快取
/*
將資料放入到快取中
cacheNames/value:指定快取元件的名字
key:快取資料使用的key,預設引數是方法的返回值
#root.methodName 被呼叫的方法名
#root.method.name 當前被呼叫的方法
#root.target 被呼叫的目標物件
#root.targetClass 被大哦有那個的目標物件類
#root.args[0] 被呼叫的方法的引數列表
keyGenerator:key的生成器,預設是主鍵id(和key是二選一)
cacheManager:指定快取管理器(比如redis)
*/
@Cacheable(cacheNames="stu",key = "#root.args[0]")
@Override
public Student getStudentById(Integer stuid) {
return studentMapper.getStudentById(stuid);
}
6.2修改快取中資料
@CachePut
6.3清楚快取
@CacheEvict