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

如何使 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
  • 2 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信