我在spring控制器的2个webservices中使用了相同的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;
}
}
在控制器
中ApplicationContext ctx = new AnnotationConfigApplicationContext(exampleBean .class); AttendeesBean attendeeBean = ctx.getBean(exampleBean .class);
在第一次服务中我设置了列表,但在第二次服务中找不到它。
答案 0 :(得分:0)
我刚刚将@Scope(value =“request”)更改为 @Scope(value =“session”,proxyMode = ScopedProxyMode.INTERFACES)
使用@AmtiK建议并进行一些搜索。
它有效
答案 1 :(得分:0)
问题在于scope
,当您定义request
范围时,值或bean将在单个请求中可用,并且不能用于其他请求。请阅读spring scopes了解详情。
因此,一旦您将范围更改为session
,则在一个请求中创建的所有bean /对象将可用于同一会话中的所有其他请求。因此,将范围更改为session
可以解决您的问题。