我在 Spring Controller 的 2 个 Web 服务中使用了相同的 ArrayList,所以我想使用我尝试创建一个 bean 的请求或 session 范围从数据库获取它一次
@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;
}
}
在 Controller 中
ApplicationContext ctx = new AnnotationConfigApplicationContext(exampleBean .class); attendeesBean attendeeBean = ctx.getBean(exampleBean .class);
在第一个服务中我设置了列表,但在第二个服务中没有找到它。
最佳答案
问题出在范围
上,当您定义请求
范围时,值或bean将在单个请求中可用,而不能用于其他请求。阅读 spring scopes了解更多信息。
因此,一旦将范围更改为 session
,那么在一个请求中创建的所有 bean/对象将可用于同一 session 中的所有其他请求。因此,将范围更改为 session
解决了您的问题。
关于java - 在 Spring Controller 中的请求之间共享数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44352988/