spring - 调用@CacheEvict 注解
问题描述
我知道@CacheEvict 对 Spring 中的缓存数据执行清理操作。我只是想了解::
如果我注释一个方法,它是否会像JSF.ie 的注释一样在 bean 对象被垃圾收集时@CacheEvict
自动调用?@PreDestroy
解决方案
@CacheEvict
不像@PreDestroy
; 它不会自动调用。
正如文档所描述的,在任何时候调用带注释的 bean 方法时@CacheEvict
都会对其进行评估。@CacheEvict
您可以有条件地控制驱逐实际发生的时间,以及驱逐发生在方法执行之前还是之后(默认),使用@CacheEviction
注释,beforeInvocation
属性,以及控制其他设置。
Spring 的声明性配置@CacheEvict
也与 JVM 垃圾收集无关。通常,您需要依赖各个缓存提供程序(例如 ehcache、memcached)或更高级的提供程序(例如 Apache Geode、Hazelcast 或 Redis)的功能来配置、调整和控制 JVM 级别的驱逐触发器和操作.
在这方面,每个提供者可能具有相似和不同的能力。
希望这可以帮助。
推荐阅读
- python - 如何将一系列随机数字典添加到单个列表中
- angularjs - 如何检测我的指令在 AngularJS 1.6+ 中是否可见?
- typescript - 对象图和访问者模式
- php - 使用 Docker 同时运行多个 Web 开发环境
- visual-studio - 无法在设备上上传应用程序
- javascript - 如何在外部 .js 文件中分离 .vue 组件的方法?
- sass - 使用 Prepros 在 Chrome DevTools 中实时编辑 SCSS 文件
- python - 为什么 pip-tools 无法推断出正确的版本?
- html - 我必须将标题的宽度设置为大于正文才能完全覆盖。为什么?
- git - 如何删除所有远程分支文件并重新提交本地文件?