为了账号安全,请及时绑定邮箱和手机立即绑定

如何使 spring @Value 属性会话作用域

如何使 spring @Value 属性会话作用域

慕婉清6462132 2021-06-28 17:39:21
我有一个 application.properties 文件,其中包含以下内容:retry.count = 3注入到 Spring MVC 控制器中@Value("${retry.count}")private int retryCount;try{  invokeRestCall()}catch(TimeOutException ex){  if(retryCount > 0) {  retryCount--;  //Retry call with recursion  }}由于 retryCount 是在应用程序加载时注入的,而不是会话范围内的,因此 retryCount 跨会话共享并且计数器不起作用bean 的范围可以由 定义@Scope(value="session"),但这不适用于@Value属性并显示错误“无法为字段定义范围”有没有其他方法可以使字段会话作用域?

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

你应该看看Spring-retry

使用它,您可以避免管理该状态并使您的组件无状态,因此,使用它Singleton而不是Session-scoped


查看完整回答
反对 回复 2021-07-14
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

Two parallel HTTP sessions do not share the changes done in session scoped bean instances.来源)。您应该在具有此字段的类上方添加 @Scope 会话。然后每个新的 http 会话将获得自己的类实例,从而获得自己的 retryCount 版本

查看完整回答
反对 回复 2021-07-14

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号