Cache的目的就是缓存,如果在功能一样的情况下,最重要的突破就是性能了。从功能上来看GuavaCache已经比较完善了,基本满足了绝大部分本地缓存的需求。那么Spring5使用Caffeine来代替GuavaCache就是因为性能的问题了
1、pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>2.6.0</version> </dependency>
2、config
@Bean(name = "userCaffeineCache") public com.github.benmanes.caffeine.cache.LoadingCache<Integer,UserDTO> getUserInfoByCaffeine() { com.github.benmanes.caffeine.cache.LoadingCache<Integer, UserDTO> userInfoCache = Caffeine.newBuilder() .maximumSize(100) .expireAfterWrite(10, TimeUnit.SECONDS) .refreshAfterWrite(20, TimeUnit.SECONDS) .build(id->userService.getUserInfoById(id)); return userInfoCache; }
3、其他与guava一致
附:caffeine 和 guava 的比较