【问题标题】:Invocation of @CacheEvict annotation调用@CacheEvict 注解
【发布时间】:2019-04-27 16:20:31
【问题描述】:

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

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

【问题讨论】:

    标签: spring spring-cache


    【解决方案1】:

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

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

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

    每个提供商在这方面可能具有相似但也不同的能力。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 2013-07-18
      相关资源
      最近更新 更多