我有一个Spring bean,它有两个带有相同签名的finder,如下所示: @Cacheable
public Player findById(int id) {
// query player by id
return player;
}
@Cacheable
public Player findByRank(int rank) {
// query player by rank
return player;
} @Cacheable注释将这两个方法视为平等,因此这会扰乱缓存。有没有办法告诉Spring这些方法的键是不一样的?
最近,我一直在架构中使用,我有一个用例,在这个用例中,来自我领域的一个非常昂贵的计算经常使用相同的参数调用(在您得出任何结论之前,我不确定参数,这些参数完全由外部调用者提供)。我希望尽可能保持应用程序体系结构的整洁,并且不希望在域层中添加对Spring的依赖,但我仍然希望使用Spring缓存功能。
我知道Spring提供了@Cacheable注释,但是如前所述,我不想使用类上的注释来避免添加对Spring的依赖。
是否可以做这样的事情:
@Configuration
public MyConfigurationClass {
@Bean
public DomainClass
我将Spring @Cacheable注释与Hazelcast 2.1和Spring3.1结合使用。
@Cacheable("testCache")
public MyObject testMethod(int testParam);
//After method call
MyObject test = Hazelcast.getMap("testCache").get("key")
test.setSomeProp() //This line causes an update to the cache since it is refer
我有一个带有@Cacheable注释的spring注释,定义如下
@Service
public class MyCacheableBeanImpl implements MyCacheableBean {
@Override
@Cacheable(value = "cachedData")
public List<Data> getData() { ... }
}
我需要这个类能够禁用缓存,并且只处理原始源的数据。这应该是基于外部的一些事件。我的方法是:
@Service
public class MyCacheableBeanImpl i
我从spring @Cacheable文档()中读到,condition可以使用SpEL在方法参数上指定条件。
我一直在尝试同样的方法,但失败了。下面是我的方法:
public static final String myStr = "4";
@Cacheable(condition="#!req.id.equals("+myStr+")")
public Response myCall(Request req){}
这是我的Request POJO:
public class Request{
private String id;
pub