Spring Boot 增加缓存功能

spring.jpa.properties.hibernate.show_sql=true,开启hibernate对sql语句的打印

单元测试中,用userRepository 查询两次相同内容。


运行一下,会看到在控制台打出了两条sql,说明是查了两次库。

增加缓存:
pom中添加依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

SpringBoot主类中添加注解 @EnableCaching
UserRepository 类添加注解@CacheConfig(cacheNames = "users")
findByName方法添加注解@Cacheable

org.springframework.data.redis.serializer.SerializationException:?

缓存对象需要实现序列化接口.UserDO implements Serializable

在次运行就会出现

可以看到,第二次请求的时候就没有打印出sql语句。

注解:

CacheManager

在Spring Boot中通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者:

  • Generic
  • JCache (JSR-107)
  • EhCache 2.x
  • Hazelcast
  • Infinispan
  • Redis
  • Guava
  • Simple

可以通过配置属性spring.cache.type来强制指定

2020/10/21 posted in  Java Spring