Spel表达式| @CacheEvict |的applicationContext

时间:2013-01-29 11:19:27

标签: spring caching spring-el

我正在使用Spring的缓存注释。我想从applicationContextfile传递Cache [@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文件中使用它或者还有其他任何方式。 任何指针都将受到高度赞赏。

此致

拉​​吉

1 个答案:

答案 0 :(得分:0)

Spring缓存抽象仅适用于需要缓存的方法的注释(@Cacheable@CacheEvict)。您不能使用XML声明。 27. Cache Abstraction