当前位置: 首页 > 知识库问答 >
问题:

Spring控制器中请求之间共享arraylsit

郜琦
2023-03-14

我在Spring控制器的2个webservice中使用了相同的ArrayList,所以我想使用请求或会话范围从DB中获取一次,我尝试制作一个bean

@WebAppConfiguration
public class exampleBean {
List<user> users = new ArrayList<user>();

@Bean
@Scope(value = "request")
public List<user> getuserList(){
    return users ;
}

@Bean
@Scope(value = "request")
public void setAttendessList(List<user>  userList){
    users = userList;
}

}

在控制器中

application context CTX = new AnnotationConfigApplicationContext(example bean。类);AttendeesBean attendee bean = CTX . get bean(example bean。类);

在第一次服务中,我设置了列表,但在第二次服务中没有找到它。

共有2个答案

连乐
2023-03-14

我刚刚将@Scope(value="Request")更改为@Scope(value="会话", proxyMode=ScopedProxyMode.INTERFACES)

使用@AmtiK建议并进行一些搜索。

它成功了

曾阳飙
2023-03-14

问题出在范围上,当您定义请求范围时,值或bean将在单个请求上可用,并且不适用于其他请求。阅读Spring范围以获取更多信息。

因此,一旦您将作用域更改为会话,那么在一个请求中创建的所有bean/对象将可用于同一会话中的所有其他请求。因此,将作用域更改为会话解决了您的问题。

 类似资料:
  • 问题内容: 我正在阅读有关Angular验证的文章,并认为在我自己的项目中使用它会很好。它运行得非常好,我想在成功验证表单后在其他控制器中扩展它的访问方法。我尝试了各种方法来执行此操作,但似乎看不到$ scope对象中的方法。 我希望有人能告诉我我想念的东西才能完成这项工作。我叉了个笨蛋。 问题答案: 正确的方法是使用角度服务。例如: 这样,您可以在注入到的任何控制器中访问内部功能: 看到这个演示

  • 问题内容: 我有一项从服务器中获取一些客户端数据的服务: 然后在一个控制器中执行: 一切都很好。但是,我正在尝试从该服务上的另一个控制器进行监视,以在数据更改时更新其范围,而不是必须重新启动http请求: 我现在只是提醒,但从未触发过。页面最初加载时,它会发出“未定义”警报。我在控制台中没有任何错误,并且所有$ injects都很好,但是似乎从未意识到服务中的数据已更改。我在手表上做错了吗? 非常

  • 问题内容: 我正在尝试在控制器之间共享数据。用例是一个多步骤的表单,在一个输入中输入的数据以后会在原始控制器之外的多个显示位置中使用。下面和jsfiddle中的代码。 的HTML JS 任何帮助是极大的赞赏。 问题答案: 一个简单的解决方案是让您的工厂返回一个对象,并让您的控制器使用对同一对象的引用: JS: HTML: 演示: http : //jsfiddle.net/HEdJF/ 当应用程序

  • 问题内容: 我是angular的新手,我想知道如何在angular的控制器之间共享变量。我正在使用以下脚本- 在Main.js中: 在Index.html中 我正在发送数据并接收响应的ajax一切正常,我的问题如下: 在SearchCtrl函数中,我有一个名为$ scope.result的变量,稍后在Index.html中进行引用。如果我将包含该变量的html代码插入SearchCtrl控制器,则

  • 问题内容: 我正在尝试在控制器之间共享数据。用例是一个多步骤的表单,在一个输入中输入的数据以后会在原始控制器之外的多个显示位置中使用。下面和jsfiddle中的代码。 HTML JS 问题答案: 一个简单的解决方案是让您的工厂返回一个对象,并让您的控制器使用对同一对象的引用: JS: HTML: 当应用程序变得更大,更复杂且难以测试时,您可能不希望以这种方式从工厂公开整个对象,而是例如通过gett

  • 问题内容: 我正在使用Python模块(PyCLIPS)和Django 1.3。 我想开发一个线程安全类,该类可实现对象池和Singleton模式,并且还必须在Django中的请求之间共享。 例如,我要执行以下操作: 请求从池中获取具有某些ID的对象,对其进行处理,然后将其推回池中,然后发送带有对象ID的响应。 另一个具有对象ID的请求从池中获取具有给定ID的对象,并重复上述请求中的步骤。 但是对