Spring缓存:enable/disable缓存

Spring Cache: enable/disable caching

我正在使用 Spring 开发 REST API。我正在使用 EHCache 缓存数据(使用 Spring 缓存)。我的缓存在 ehcache.xml 文件中配置,CacheManager 在 applicationContext.xml 文件中配置。此外,我使用 @Cacheable 表示必须缓存哪些数据。

它工作正常,但现在我想通过读取属性文件的外部 属性 来 enable/disable 此缓存。喜欢 applicationContext.xml 中的 PropertyPlaceholderConfigurer

有没有什么方法可以不用过滤(使用 Maven)ehcache.xml,或者 create/access 以编程方式缓存(我仍然想使用基于 xml 的配置和注释)?

您是否考虑过使用 Spring 个配置文件?

基本上,您可以在不同的配置文件(开发、测试、暂存、生产和任何您想要的)中分离您的配置行为,并配置您的 Bean,以便根据活动配置文件创建它们(使用 -Dspring.profiles.active).此功能很久以前就在 Spring 3.1 中引入,甚至早于缓存,因此我相信您在当前的 Spring 版本中已经拥有它。

您可以阅读更多: