- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试覆盖整个类的 KeyGenerator,但不知道是否有一种简单的方法可以做到这一点。
我有以下配置 bean 设置来启用我的缓存:
@Configuration
@EnableCaching(mode=AdviceMode.ASPECTJ)
public class CacheConfig extends CachingConfigurerSupport{
@Bean(destroyMethod="shutdown")
public net.sf.ehcache.CacheManager ehCacheManager() {
CacheConfiguration configCache = new CacheConfiguration();
veracodeCache.setName("repo");
net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();
config.addCache(configCache);
return net.sf.ehcache.CacheManager.newInstance(config);
}
@Bean
@Override
public CacheManager cacheManager() {
return new EhCacheCacheManager(ehCacheManager());
}
@Bean
@Override
public KeyGenerator keyGenerator() {
return new SimpleKeyGenerator();
}
}
但是,在特定的类中,我想使用不同的 key 生成器。我知道我可以在每个 @Cacheable
调用中重写单个 keyGenerator,但无法找到一种方法来为整个类重写它。
例如:
@KeyGenerator("com.domain.MyCustomKeyGenerator") // <--- anyway to set a different key gen for the entire class?
public class Repo{
@Cacheable("repo")
public String getName(int id){
return "" + id;
}
}
根据文档,如果我在类型上设置@Cacheable
,所有方法都将被缓存(这不是我想要的)。
当然,我的另一个选择是在每个方法上指定@Cacheable(value="repo", keyGenerator="com.domain.MyCustomKeyGenerator")
,但这非常多余,特别是如果我想更改多个类的默认 key 生成器。
有支持吗?
最佳答案
您可以在类级别使用@CacheConfig
。它不会启用方法的缓存,而只是对其进行配置。
@CacheConfig(keyGenerator="com.domain.MyCustomKeyGenerator")
public class Repo{
// your com.domain.MyCustomKeyGenerator will be used here
@Cacheable("repo")
public String getName(int id){
return "" + id;
}
}
关于java - 我可以仅在 Spring 4 中重写给定类的 @Cacheable KeyGenerator 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33115625/
我正在尝试使用 Spring Cacheable,但遇到了类转换异常 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(cla
我就废话不多说了,大家还是直接看代码吧~ ? 1
我有这个实用方法来加载我的网络应用程序的内容 @Cacheable(value="dataStrore" ) public MarketJson retrieveMarketJson(DataRequ
与内存数据库一起使用@Cacheable是否相关? 我在内存数据库中使用 h2,只是想知道使用 @Cacheable 可以提高应用程序的性能。我的应用程序将频繁调用数据库中的静态数据 最佳答案 一般来
将 Spring 3.2 与 EhCache 2.9 一起使用。我已经注释了一个零参数方法如下: @Cacheable(value="myList", key="#result.method.name
我正在尝试将 Redis 与 Spring 的 @Cacheable 一起使用,但需要根据 Spring Boot 样式的应用程序属性有条件地打开或关闭缓存。我的第一次尝试似乎没有用。 applica
我在 Spring 3.2 中使用 @Cacheable 来缓存服务层方法的结果。服务类内部使用以下方法代码: @Cacheable("questions") public List getSecut
如何查看@Cacheable 的实现。我想了解他们如何能够获取方法参数的名称并在运行时获取其实际值。 例如: @Cacheable(cacheNames = "name", key = "#k
我正在努力在 Spring Boot 集成测试中测试 @Cacheable。这是我学习如何进行集成测试的第二天,我发现的所有示例都使用旧版本。我还看到了 assetEquals("some value
背景 项目中,使用@Cacheable进行数据缓存。发现:当redis宕机之后,@Cacheable注解的方法并未进行缓存冲突,而是直接抛出异常。而这样的异常会导致服务不可用。 原因分析 我们
我在 Spring 4.1.4 应用程序中使用最新的 Ehcache。我所拥有的是: class Contact{ int id; int revision; } @Cachea
我已经看到很多同一个问题的化身,但我想我已经尝试了所有修复 - 我的用法非常简单。 我一直在使用 Ehcache,但也没有用。因此,为了排除 Ehcache 问题并帮助指出更基本的东西,我转向了 Si
我有一个关于 Spring Security 和 Spring Caching 的问题。假设我有一个方法,并且我已经用 @PreAuthorize("condition") 和 @Cacheable(
我一般用@Cacheable在我的 spring-boot 应用程序中使用缓存配置并为每个缓存设置特定的 TTL(生存时间)。 我最近继承了一个使用 @Cacheable 的 spring boot
我想将一项服务设为可缓存。我一直在研究grails-cache plugin它看起来很有希望,但它导致了一些我不理解的行为。 考虑以下服务: class FooService { def co
我在使用多参数和分页的 @Cacheable 时遇到问题。 @Cacheable(value = "books", key = "#p0") public List findBooks(Long lo
当调用带有 @Cacheable 注释且同步标志设置为 true 的方法时,出现以下异常: java.lang.AbstractMethodError: org.springframework.cac
我已将我的应用程序升级到 Spring 3.1,并且所有 jar 都已充分更新。但是,当我尝试对其中一个 Controller 中的方法使用 @Cacheable 时,该 Controller 的所有
如何进行以下工作? public abstract class MyAbstractOne { @Cacheable(value="myCache") public MyObj
尝试使用内联刷新来实现我自己的缓存加载器。此缓存加载使用 RefreshAheadCacheFactory 如描述 http://terracotta.org/documentation/4.1/bi
我是一名优秀的程序员,十分优秀!