所以我最近在我的服务芽中增加了一些spring-cache用法,我看得越多,我就越觉得它限制了我的工作能力。
我最初的印象是它的代码繁琐程度较低,我不必编写那么多代码。没错。
负面的是,我无法控制要缓存的内容,Ids的使用以及传递给诸如saveAll等方法的实体的集合,还有一些执行更复杂查询的方法。
在使用Spring缓存时,是否存在一些我想不到的东西?在后台有些魔术,或者这真的真的很简单,就像创建一些并发的哈希图,然后将它们从服务中放入数据,然后根据服务方法调用取出数据或进行更新一样?
使用我自己的缓存实现与spring-cachce相比,我50/50。我可以在弹簧缓存中解决的风险有哪些?
这个问题是在假设使用默认缓存管理器的情况下进行的。
答案 0 :(得分:2)
Spring默认情况下使用默认的ConcurrentHashMap,但如果在类路径中包含Caffeine(https://github.com/ben-manes/caffeine)或Hazelcast,则将获得其他缓存提供程序。这样做的好处是您可以在没有任何代码的情况下在外部或应用程序中配置缓存。