Spring引导可缓存缓存大小

Spring引导可缓存缓存大小,spring,caching,spring-cache,Spring,Caching,Spring Cache,我想配置缓存大小。我正在使用@EnableCaching。这是我的缓存存储库 供应商或存储库 public interface VendorRepository extends Repository<Vendor, Long> { @Cacheable("vendorByUsername") Vendor getVendorByUsername(String username); @CacheEvict(value = {"vendorByUsername", "vendor",

我想配置缓存大小。我正在使用
@EnableCaching
。这是我的缓存存储库

供应商或存储库

public interface VendorRepository extends Repository<Vendor, Long> {

@Cacheable("vendorByUsername")
Vendor getVendorByUsername(String username);

@CacheEvict(value = {"vendorByUsername", "vendor", "vendors"}, allEntries = true)
Vendor save(Vendor vendor);

@Cacheable("vendor")
Vendor findOne(Long id);

@Cacheable("vendors")
List<Vendor> findAll();
}
公共接口供应商存储库扩展存储库{
@可缓存(“供应商名称”)
供应商getVendorByUsername(字符串用户名);
@cacheexecute(值={“vendorByUsername”、“vendor”、“vendors”},allEntries=true)
供应商保存(供应商);
@可缓存(“供应商”)
供应商findOne(长id);
@可缓存(“供应商”)
列出findAll();
}

它现在运行良好,但我想设置最大缓存大小。如何在我的主配置文件中配置它?

@Jaiwo99是正确的

Spring的缓存抽象不处理“管理”缓存内容的特定语义和“低级”细节(例如大小或类似相关的逐出/过期)。这在很大程度上是因为这些低级管理细节在不同的缓存提供程序之间差异很大

例如,一些缓存提供程序/实现是高度分布式的,具有不同的一致性、冗余策略和控制延迟的机制,等等。因此,在这些特性之上提供一致的抽象是非常困难的,因为一些提供者甚至没有实现这些特性,或者具有非常不同的“一致性”策略,等等

无论如何,Spring参考指南中的这一部分可能是对它的最好总结

8.7。如何设置TTL/TTI/逐出策略/XXX功能

直接通过缓存提供程序。缓存抽象是一种抽象,而不是缓存实现。您使用的解决方案可能支持其他解决方案不支持的各种数据策略和不同拓扑(例如,JDK ConcurrentHashMap) — 在缓存抽象中公开这一点是没有用的,因为没有支持)。此类功能应直接通过后备缓存(配置时)或其本机API进行控制


干杯

这取决于您使用的缓存实现。spring只是一个抽象层,不使用任何实现。我将使用Ehcache。谢谢你。谢谢你的澄清,我将使用EhCache,正如我所见,它非常容易使用。