@CacheEvict
не похоже на @PreDestroy
;он не вызывается автоматически.
Как описано в документации , @CacheEvict
оценивается каждый раз, когда вызывается метод аннотированного компонента @CacheEvict
.Вы можете условно контролировать, когда на самом деле происходит выселение, а также происходит ли выселение до выполнения метода или после (по умолчанию), используя аннотацию @CacheEviction
, атрибут beforeInvocation
, а также управляя другими настройками.
Декларативная конфигурация Spring для @CacheEvict
также не связана с сборкой мусора JVM.Обычно вам нужно полагаться на возможности отдельных провайдеров кэширования (например, ehcache, memcached) или более продвинутых провайдеров, таких как (например, Apache Geode, Hazelcast или Redis), для настройки, настройки и управления триггерами и действиями выселения на уровне JVM..
У каждого провайдера могут быть одинаковые и разные возможности в этом отношении.
Надеюсь, это поможет.