Java 如何更改hdiv中的缓存删除策略

Java 如何更改hdiv中的缓存删除策略,java,security,spring,hdiv,Java,Security,Spring,Hdiv,我正在使用java Web应用程序的Web应用程序安全框架。每个新的网页请求都会生成hdiv内部安全信息,这些信息将被缓存并用于安全检查 我有以下几点意见: 我有一个订单页面,在购物车中添加或删除物品时,会弹出确认页面2秒钟 弹出50次后,参考底图顺序页面将从缓存中删除,因此应用程序中出现错误 有人知道如何影响hdiv缓存删除策略以保持basepage的活动吗 一种方法是将org.hdiv.session.StateCache.maxSize从50增加到500 但这只能治愈症状,而不是根本原因

我正在使用java Web应用程序的Web应用程序安全框架。每个新的网页请求都会生成hdiv内部安全信息,这些信息将被缓存并用于安全检查

我有以下几点意见:

我有一个订单页面,在购物车中添加或删除物品时,会弹出确认页面2秒钟

弹出50次后,参考底图顺序页面将从缓存中删除,因此应用程序中出现错误

有人知道如何影响hdiv缓存删除策略以保持basepage的活动吗

一种方法是将org.hdiv.session.StateCache.maxSize从50增加到500

但这只能治愈症状,而不是根本原因

更新:

使用@rbelasko解决方案 我成功地使用了原始的
org.hdiv.session.StateCache
将maxSize更改为20,并在调试日志中验证了cachentries在20个条目后被取消

当我将其更改为使用自己的实现时,它不起作用

Bean定义

<bean id="cache" class="com.mycompany.session.StateCacheTest" singleton="false" 
  init-method="init">
    <property name="maxSize">
        <value>20</value>
    </property>
</bean>
调试日志中没有来自StateCacheTest的条目

有什么想法吗

更新2:

虽然我无法通过spring加载不同的IStateCache实现,但我可以使用

<hdiv:config ... maxPagesPerSession="200" ... />

bean设置定义

<property name="maxSize">
    <value>20</value>
</property>

20
对我的系统中的缓存大小没有影响。

您可以创建自定义接口实现

使用HDIV显式配置(不使用HDIV的新自定义模式)这是“缓存”bean的默认配置:


200
您可以创建自己的实现,并实现适合您需求的策略

问候,

Roberto

您可以创建自定义接口实现

使用HDIV显式配置(不使用HDIV的新自定义模式)这是“缓存”bean的默认配置:


200
您可以创建自己的实现,并实现适合您需求的策略

问候,


Roberto

你能给我一个例子,如何用我自己的实现替换
org.hdiv.session.StateCache
?请参阅我的更新问题。是否使用HDIV自定义模式(HDIV:)?如果您使用的是显式配置(旧式),那么您只需要定义一个“缓存”bean,它应该可以工作。换句话说,删除defaulta缓存bean并添加您的bean。升级到更高版本后,这一切正常。谢谢你能给我一个例子,如何用我自己的实现替换
org.hdiv.session.StateCache
?请参阅我的更新问题。是否使用HDIV自定义模式(HDIV:)?如果您使用的是显式配置(旧式),那么您只需要定义一个“缓存”bean,它应该可以工作。换句话说,删除defaulta缓存bean并添加您的bean。升级到更高版本后,这一切正常。谢谢
<property name="maxSize">
    <value>20</value>
</property>
<bean id="cache" class="org.hdiv.session.StateCache" singleton="false" 
  init-method="init">
    <property name="maxSize">
        <value>200</value>
    </property>
</bean>