java - 在 Spring Controller 中的请求之间共享数组列表

标签 java spring spring-boot

我在 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/

相关文章:

java - 验证上传的文件是否为 App Engine 上的图像

java - 每次我使用“重玩”按钮时,我的井字游戏应用程序都会崩溃

java - 配置 Springboot Cloud Config Server - management.security.enabled=false 标志不起作用

java - Java 中易于使用的 Web 服务框架/库?

jquery - 如何使用 ajax 和 jquery 将自动完成结果返回给 spring mvc Controller

spring-boot - 嵌入式 tomcat 中未找到 Thymeleaf 模板

java - 具有非托管对象的 CDI

java - 无法看到通过 Spring Boot Java 创建的表

spring-security - SpringSecurity WithSecurityContext MockMvc OAuth2 总是未经授权

java - jboss 服务器中的 Spring Boot War 未加载静态内容