1.创建一个SpringBoot项目,pom文件中引入相关依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies>
2.准备环境及创建测试所需要的类
yml文件:
spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/cacheusername: rootpassword: xxxx(数据库密码)redis:host: xxxxxxx(自己redis安装的服务器ip地址)port:6379password: xxxxx(redis密码)mybatis:configuration:map-underscore-to-camel-case:truemapper-locations:- classpath:mybatis/mapper/*.xmldebug:true
SQL文件:
DROPTABLEIFEXISTS`employee`;CREATETABLE`employee`(`id`int(11)NOTNULLAUTO_INCREMENT,`dept_id`int(11)DEFAULTNULL,`email`varchar(255)DEFAULTNULL,`name`varchar(255)DEFAULTNULL,`age`int(11)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=utf8;LOCKTABLES`employee`WRITE;INSERTINTO`employee`VALUES(1,1,'zhangsan@qq.com','zhangsan',20),(2,1,'lisi@qq.com','lisi',18);UNLOCKTABLES;
Mapper文件:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.pz.dao.EmployeeDao"><resultMaptype="com.pz.domain.Employee"id="BaseResult"><idcolumn="id"property="id"/><resultcolumn="name"property="name"/><resultcolumn="age"property="age"/><resultcolumn="email"property="email"/><resultcolumn="dept_id"property="deptId"/></resultMap><selectid="findAll"resultMap="BaseResult">
select * from employee</select></mapper>
主启动类:
@SpringBootApplication@EnableCachingpublicclassSpringbootRedisApplication{publicstaticvoidmain(String[] args){
SpringApplication.run(SpringbootRedisApplication.class, args);}}
controller:
@RestControllerpublicclassEmployeeController{@Autowiredprivate EmployeeService employeeService;@GetMapping("/list")public List<Employee>list(){return employeeService.findAll();}@GetMapping("/emp/{id}")public Employeeemp(@PathVariable("id") Integer id){return employeeService.selectEmp(id);}}
service:
@ServicepublicclassEmployeeService{@Autowiredprivate EmployeeDao employeeDao;@Cacheable(cacheNames="employee")public List<Employee>findAll(){
System.out.println("查询所有员工......");return employeeDao.findAll();}@Cacheable(cacheNames="employee--id")public EmployeeselectEmp(Integer id){
System.out.println("查询员工:"+ id);return employeeDao.selectById(id);}}
dao:
@MapperpublicinterfaceEmployeeDao{
List<Employee>findAll();@Select("SELECT * FROM employee WHERE id = #{id}")
EmployeeselectById(Integer id);}
实体类:
@DatapublicclassEmployeeimplementsSerializable{private Integer id;private String name;private String email;private Integer age;private Integer deptId;}
配置类:
@ConfigurationpublicclassMyRedisConfigextendsCachingConfigurerSupport{@Bean@Overridepublic KeyGeneratorkeyGenerator(){returnnewKeyGenerator(){public Objectgenerate(Object target, Method method, Object... objects){
StringBuilder sb=newStringBuilder();
sb.append(target.getClass().getName()).append(".").append(method.getName()).append(Arrays.toString(objects));return sb.toString();}};}@Beanpublic RedisTemplate<Object, Object>redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException{
RedisTemplate<Object, Object> template=newRedisTemplate<Object, Object>();
template.setConnectionFactory(redisConnectionFactory);
GenericJackson2JsonRedisSerializer serializer=newGenericJackson2JsonRedisSerializer();
template.setDefaultSerializer(serializer);return template;}}
运行主启动类,打开浏览器输入localhost:8080/emp/1或localhost:8080/emp/2
结果如下 这里 使用到了RedisDesktopManager


链接:https://pan.baidu.com/s/1NLGYE6uma48WxG_nrgRK-A
提取码:pz99