1、准备工程环境通过Spring Initializr 创建一个基于 SpringBoot 框架的应用,必须包含的依赖有:Spring Data Redis, Spring Dat锾攒揉敫a JPA, H2 Database, Lombok。工程导入到Eclipse后,需要在 pom.xml 中添加 commons-pool2 的依赖,因为需要使用 Lettuce 连接池访问Redis,而该连接池的创建需要依赖 commons-pool2。
2、创建数据库相关的实体类、Repository接口图1示:因为使用了Spring Data JPA 作为数据库操作框架,所以实体类需要使用 @Entity 注解进行标注,并且使用了很多Lombok注解来简化代码开发图2示:数据库操作相关的Repository接口,继承 JpaRepository 接口,框架会自动为其创建实现类
3、创建 Redis Repository 相关的实体类、Repository接口图1示:实体类需要使用 @伊怕锱鳏RedisHash 注解进行标注,在注解中指明缓存名称和缓存失效时间(时间单位默认为秒),需要通过 @Id 注解标注缓存条目主键,也可以通过 @Indexed 注解来增加其他缓存条目图2示:Redis Repository 接口需要继承 CrudRepository 接口
4、创建 Service 类Service类中注入上面创建的两个 Repository 接口实例,提供根据名称查询实体对象的方法,首先会尝试从Redis缓存中获取数据,获取到,直接返回,获取不到,则尝试从数据库中获取,此时如果获取到,先将数据保存到缓存中,再返回。
5、添加配置文件信息和初始换数据图1示: 在 application.properties 中添加 JPA 在控制台打印SQL语句的配置信息,和Redis服务器的配置信息图2示: 在 resources 目录中添加 data.sql,其中包含初始化数据
6、启动类编写测试代码启动类上添加 @EnableJpaRepositories 和 @EnableRedisRepositories 注解,并实现 CommandLineRunner 接口,注入 Service 对象,多次调用根据名称获取实体对象的方法,观察控制台的输出