首页 > 解决方案 > 调用@CacheEvict 注解

问题描述

我知道@CacheEvict 对 Spring 中的缓存数据执行清理操作。我只是想了解::

如果我注释一个方法,它是否会像JSF.ie 的注释一样在 bean 对象被垃圾收集时@CacheEvict自动调用?@PreDestroy

标签: springspring-cache

解决方案


@CacheEvict不像@PreDestroy; 它不会自动调用。

正如文档所描述的,在任何时候调用带注释的 bean 方法时@CacheEvict都会对其进行评估。@CacheEvict您可以有条件地控制驱逐实际发生的时间,以及驱逐发生在方法执行之前还是之后(默认),使用@CacheEviction注释,beforeInvocation属性,以及控制其他设置。

Spring 的声明性配置@CacheEvict也与 JVM 垃圾收集无关。通常,您需要依赖各个缓存提供程序(例如 ehcache、memcached)或更高级的提供程序(例如 Apache Geode、Hazelcast 或 Redis)的功能来配置、调整和控制 JVM 级别的驱逐触发器和操作.

在这方面,每个提供者可能具有相似和不同的能力。

希望这可以帮助。


推荐阅读