0

我正在使用 Spring 的缓存注释。我想从 applicationContextfile 传递缓存 [@CacheEvict(name="vendorCache")] 的名称,或者可以以任何其他方式配置它。

现在我有两个类 VendorDAo 和 NetworkDao 的场景。

public VenderDAO
{
@CacheEvict(name="vendorCache")
public String insert():void
{
    //code to add the record into the table using ibatis
}
}


public NetworkDao
{
@CacheEvict(name="netWorkCache")
public String insert():void
{
    //code to add the record into the table using ibatis
}
}

现在我有更多方法,但唯一的区别是@CacheEvict。有什么方法可以让我在配置文件中声明缓存名称并将其作为属性传递给 bean。

<bean id="venderDAO" class="VenderDAO">
<property name="cachename" value="vendorCache"/>
</bean>

<bean id="netWorkDAO" class="VenderDAO">
<property name="cachename" value="netWorkCache"/>
</bean>

[Note: both the beans have the same class name]

并且可以在java文件中使用它或者有任何其他方式。任何指针将不胜感激。

问候

拉吉

4

1 回答 1

0

Spring 缓存抽象只能通过您需要缓存的方法上的注释 (@Cacheable和) 获得。@CacheEvict您不能使用 XML 声明。27.缓存抽象

于 2013-01-29T14:14:33.340 回答