所以我最近在我的服务中添加了一些 spring-cache 的使用,我看得越多,我就越觉得它限制了我能做的事情。
我的初步印象是它的代码量较少,我不必编写那么多代码。这是一个优点。
缺点是我无法控制缓存的内容、Id 的使用、传递给 saveAll 等方法的实体集合以及执行更复杂查询的一些方法。
当涉及到 Spring 缓存时,我是否缺少一些东西?后台有一些魔法,或者这真的只是像创建一些并发 HashMap 并将数据从服务放入其中并根据服务方法调用取出或更新数据一样简单吗?
我对使用我自己的缓存实现与 spring-cachce 的看法是 50/50。 spring-cache 已经为我解决了哪些风险?
此问题假设使用默认缓存管理器。
最佳答案
Spring 默认使用默认的 ConcurrentHashMap,但如果您在类路径中包含 Caffeine ( https://github.com/ben-manes/caffeine ) 或 Hazelcast,您将获得不同的缓存提供程序。这样做的好处是您可以在外部或您的应用程序中配置缓存,而无需任何代码。
关于java - 主要优点/区别是什么 [ spring-cache vs plain map caching ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56168845/