@Autowiredprivate CacheManager cacheManager;@Testpublic void test() throws Exception { System.out.println("CacheManager type : " + cacheManager.getClass()); userRepository.save(new User("AAA", 10)); User u1 = userRepository.findByName("AAA"); System.out.println("第一次查询:" + u1.getAge()); User u2 = userRepository.findByName("AAA"); System.out.println("第二次查询:" + u2.getAge());}
执行测试输出可以得到:
CacheManager type : class org.springframework.cache.ehcache.EhCacheCacheManagerHibernate: select next_val as id_val from hibernate_sequence for updateHibernate: update hibernate_sequence set next_val= ? where next_val=?Hibernate: insert into user (age, name, id) values (?, ?, ?)2020-07-14 18:09:28.465 INFO 58538 --- [ main] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactoryHibernate: select user0_.id as id1_0_, user0_.age as age2_0_, user0_.name as name3_0_ from user user0_ where user0_.name=?第一次查询:10第二次查询:10
可以看到:
- 第一行输出的CacheManager type为org.springframework.cache.ehcache.EhCacheCacheManager,而不是上一篇中的ConcurrentHashMap了 。
- 第二次查询的时候,没有输出SQL语句,所以是走的缓存获取
代码示例本文的相关例子可以查看下面仓库中的chapter5-2目录:
- Github:https://github.com/dyc87112/SpringBoot-Learning/
- Gitee:https://gitee.com/didispace/SpringBoot-Learning/
推荐阅读
- SpringBoot下使用定时任务的方式全揭秘
- 为什么Java程序员必须要会SpringBoot?
- Spring Boot读取配置文件的几种方式「值得收藏」
- Tomcat爆出安全漏洞!Spring Cloud/Boot框架多个版本受影响
- Springboot 动态改变Log级别
- 可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全
- 聊聊Spring boot2.X开发环境搭建和基本开发
- 扒一扒Spring家族的前世今生
- 一文搞懂 Spring JPA
- 一 当用SpringApplication.run的时候发生了什么