取得领先
VMware 提供培训和认证来加速您的进步。
了解更多在过去的一年中,我们显着改进了缓存抽象,支持 JSR-107 (JCache) 注解 和一个 更好的声明性模型来共享或外部化通用设置。 在 Spring Boot 1.3 中,我们现在为其提供全面的自动配置。
简而言之,缓存抽象将缓存应用于方法,从而减少了基于缓存中可用信息的执行次数。 缓存逻辑是透明地应用的:只有当指定的 ISBN
尚未出现在 books
缓存中时,才会调用以下方法。 在为缺失的 Book
调用该方法后,缓存将被透明地更新,以便进一步的调用不会再次调用该方法。
@Cacheable("books")
public Book findBook(ISBN isbn) {...}
要实际启用这些注解的处理,基本设置需要设置 @EnableCaching
并定义 CacheManager
bean。
@SpringBootApplication
@EnableCaching
public class MyApp {
@Bean
public CacheManager cacheManager() { ...}
...
}
我们希望尽量减少最后一步,这样您只需在 Spring Boot 应用程序上添加 @EnableCaching
即可完成。 这现在是 Spring Boot 1.3.M1 的现实! Spring Boot 为任何符合 JSR-107 标准的提供程序提供自动配置,也为 EhCache、Hazelcast、Infinispan、Redis 和 Guava 提供自动配置。 如果这些都不可用,我们还使用 ConcurrentHashMap
提供非常基本的支持。
Spring Boot 正在检查您的项目以推断正确的默认值; 例如,如果在类路径的根目录中有一个 ehcache.xml
并且存在 EhCache 2.x,那么我们将自动使用该配置文件创建一个 EhCacheCacheManager
(除非另有说明)。 我们还提供广泛的配置选项支持:只需获取 Spring Boot 1.3.M1 并在 IDE 中键入 spring.cache
即可列出可用的选项。
如果底层提供程序支持,Spring Boot 可以在启动时创建缓存。 如果您使用的是 JCache,它还可以为您提供 javax.cache.CacheManager
的回调,以便您可以在启动时对其进行自定义(即,进一步调整配置)。
如果您使用的是执行器,如果底层缓存提供程序支持,默认情况下也会公开缓存指标。 目前,我们为每个缓存公开大小、缓存比率和未命中比率。 我们期待您的反馈来改进该列表。
非常感谢社区的帮助,特别是 Eddú Meléndez Gonzales,他贡献了许多 PR! 文档也已更新,请试一试,让我们知道您的想法。