返回介绍

13.1 启用对缓存的支持

发布于 2024-08-17 00:45:49 字数 1302 浏览 0 评论 0 收藏 0

Spring对缓存的支持有两种方式:

注解驱动的缓存

XML声明的缓存

使用Spring的缓存抽象时,最为通用的方式就是在方法上添加@Cacheable和@CacheEvict注解。在本章中,大多数内容都会使用这种类型的声明式注解。在13.3小节中,我们会看到如何使用XML来声明缓存边界。

在往bean上添加缓存注解之前,必须要启用Spring对注解驱动缓存的支持。如果我们使用Java配置的话,那么可以在其中的一个配置类上添加@EnableCaching,这样的话就能启用注解驱动的缓存。的13.1展现了如何实际使用@EnableCaching。

程序清单13.1 通过使用@EnableCaching启用注解驱动的缓存

如果以XML的方式配置应用的话,那么可以使用Spring cache命名空间中的<cache:annotation-driven>元素来启用注解驱动的缓存。

程序清单13.2 通过使用启用注解驱动的缓存

其实在本质上,@EnableCaching和<cache:annotation-driven>的工作方式是相同的。它们都会创建一个切面(aspect)并触发Spring缓存注解的切点(pointcut)。根据所使用的注解以及缓存的状态,这个切面会从缓存中获取数据,将数据添加到缓存之中或者从缓存中移除某个值。

在程序清单13.1和程序清单13.2中,你可能已经注意到了,它们不仅仅启用了注解驱动的缓存,还声明了一个缓存管理器(cache manager)的bean。缓存管理器是Spring缓存抽象的核心,它能够与多个流行的缓存实现进行集成。

在本例中,声明了ConcurrentMapCacheManager,这个简单的缓存管理器使用java.util.concurrent.ConcurrentHashMap作为其缓存存储。它非常简单,因此对于开发、测试或基础的应用来讲,这是一个很不错的选择。但它的缓存存储是基于内存的,所以它的生命周期是与应用关联的,对于生产级别的大型企业级应用程序,这可能并不是理想的选择。

幸好,有多个很棒的缓存管理器方案可供使用。让我们看一下几个最为常用的缓存管理器。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文