diff --git a/demo-cache/demo-cache-caffeine/README.md b/demo-cache/demo-cache-caffeine/README.md
new file mode 100644
index 0000000..144a73d
--- /dev/null
+++ b/demo-cache/demo-cache-caffeine/README.md
@@ -0,0 +1,130 @@
+# spring-boot-demo-cache-caffeine
+
+> 此 demo 主要演示了 Spring Boot 如何集成 caffeine 使用缓存。
+
+## 1.开发步骤
+
+### 1.1.添加依赖
+
+```xml
+
+ * 启动器 + *
+ * + * @author yangkai.shen + * @date 2022-09-14 15:47 + */ +@SpringBootApplication +public class CaffeineCacheApplication { + public static void main(String[] args) { + SpringApplication.run(CaffeineCacheApplication.class, args); + } +} diff --git a/demo-cache/demo-cache-caffeine/src/main/java/com/xkcoding/cache/caffeine/configuration/CaffeineCacheAutoConfiguration.java b/demo-cache/demo-cache-caffeine/src/main/java/com/xkcoding/cache/caffeine/configuration/CaffeineCacheAutoConfiguration.java new file mode 100644 index 0000000..be584a9 --- /dev/null +++ b/demo-cache/demo-cache-caffeine/src/main/java/com/xkcoding/cache/caffeine/configuration/CaffeineCacheAutoConfiguration.java @@ -0,0 +1,18 @@ +package com.xkcoding.cache.caffeine.configuration; + +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; + +/** + *+ * caffeine 缓存自动装配 + *
+ * + * @author yangkai.shen + * @date Created in 2022-09-14 15:48 + */ +@EnableCaching +@Configuration(proxyBeanMethods = false) +public class CaffeineCacheAutoConfiguration { + +} diff --git a/demo-cache/demo-cache-caffeine/src/main/resources/application.yml b/demo-cache/demo-cache-caffeine/src/main/resources/application.yml new file mode 100644 index 0000000..775d7d8 --- /dev/null +++ b/demo-cache/demo-cache-caffeine/src/main/resources/application.yml @@ -0,0 +1,10 @@ +spring: + cache: + type: caffeine + caffeine: + spec: maximumSize=500,expireAfterAccess=600s + cache-names: + - user +logging: + level: + com.xkcoding: debug diff --git a/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/CaffeineCacheApplicationTests.java b/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/CaffeineCacheApplicationTests.java new file mode 100644 index 0000000..0f0d5e0 --- /dev/null +++ b/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/CaffeineCacheApplicationTests.java @@ -0,0 +1,13 @@ +package com.xkcoding.cache.caffeine; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class CaffeineCacheApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/service/UserServiceTest.java b/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/service/UserServiceTest.java new file mode 100644 index 0000000..494fce7 --- /dev/null +++ b/demo-cache/demo-cache-caffeine/src/test/java/com/xkcoding/cache/caffeine/service/UserServiceTest.java @@ -0,0 +1,62 @@ +package com.xkcoding.cache.caffeine.service; + +import com.xkcoding.cache.api.UserService; +import com.xkcoding.cache.entity.User; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +/** + *+ * caffeine缓存测试 + *
+ * + * @author yangkai.shen + * @date Created in 2018-11-16 16:58 + */ +@Slf4j +@SpringBootTest +public class UserServiceTest { + + @Autowired + private UserService userService; + + /** + * 获取两次,查看日志验证缓存 + */ + @Test + public void getTwice() { + // 模拟查询id为1的用户 + User user1 = userService.get(1L); + log.debug("【user1】= {}", user1); + + // 再次查询 + User user2 = userService.get(1L); + log.debug("【user2】= {}", user2); + // 查看日志,只打印一次日志,证明缓存生效 + } + + /** + * 先存,再查询,查看日志验证缓存 + */ + @Test + public void getAfterSave() { + userService.saveOrUpdate(new User(4L, "user4")); + + User user = userService.get(4L); + log.debug("【user】= {}", user); + // 查看日志,只打印保存用户的日志,查询是未触发查询日志,因此缓存生效 + } + + /** + * 测试删除,查看caffeine是否存在缓存数据 + */ + @Test + public void deleteUser() { + // 查询一次,使caffeine中存在缓存数据 + userService.get(1L); + // 删除,查看caffeine是否存在缓存数据 + userService.delete(1L); + } +} diff --git a/demo-cache/demo-cache-ehcache/README.md b/demo-cache/demo-cache-ehcache/README.md index 91f261e..08d0c98 100644 --- a/demo-cache/demo-cache-ehcache/README.md +++ b/demo-cache/demo-cache-ehcache/README.md @@ -146,7 +146,7 @@ public class UserServiceTest { } /** - * 测试删除,查看redis是否存在缓存数据 + * 测试删除,查看ehcache是否存在缓存数据 */ @Test public void deleteUser() { diff --git a/demo-cache/demo-cache-ehcache/src/test/java/com/xkcoding/cache/ehcache/service/UserServiceTest.java b/demo-cache/demo-cache-ehcache/src/test/java/com/xkcoding/cache/ehcache/service/UserServiceTest.java index 088449b..d96c058 100644 --- a/demo-cache/demo-cache-ehcache/src/test/java/com/xkcoding/cache/ehcache/service/UserServiceTest.java +++ b/demo-cache/demo-cache-ehcache/src/test/java/com/xkcoding/cache/ehcache/service/UserServiceTest.java @@ -50,7 +50,7 @@ public class UserServiceTest { } /** - * 测试删除,查看redis是否存在缓存数据 + * 测试删除,查看ehcache是否存在缓存数据 */ @Test public void deleteUser() { diff --git a/demo-cache/pom.xml b/demo-cache/pom.xml index ffafc44..a76f7b9 100644 --- a/demo-cache/pom.xml +++ b/demo-cache/pom.xml @@ -20,6 +20,7 @@