当前位置: 首页 > 面试题库 >

Bean的Spring会话作用域如何工作?Web上下文中Bean的默认范围是什么?

宗冷勋
2023-03-14
问题内容

我正在研究Spring MVC,但有以下疑问:

  1. 会话范围的目的到底是什么?

阅读文档,我知道这将bean定义的范围限定为HTTP会话。仅在可感知网络的Spring
ApplicationContext上下文中有效。而且,每个用户会话一次创建一个新实例。

但是什么时候才使用呢?出于什么目的?你能举一个实际的例子吗?

  1. 在Spring MVC中,Web上下文的默认范围是什么?

我知道在Spring中,bean的默认范围是 单例, 但是在Web上下文中,bean的范围如何?


问题答案:

Ans
1)会话范围与HttpSession范围非常相似。基于会话作用域范围实例化的Bean通过HTTP会话存在。与请求范围类似,它仅适用于可感知Web的Spring应用程序上下文。

/** * Annotation-based configuration of session scope */ 
@Component
@Scope("session") 
public class ShopCart { }

然后

@Inject
private ShopCart cart;

答案2)默认情况下,“ Singleton”到处都是。



 类似资料:
  • 我正在学习Spring MVC,我有以下疑问: 会话范围的目的到底是什么 阅读文档后,我知道这将bean定义的范围限定为HTTP会话。仅在支持web的Spring ApplicationContext上下文中有效。而且每个用户会话都会创建一个新实例。 但具体何时使用?为什么呢?你能举个实际的例子吗? 我知道在Spring,bean的默认作用域是singleton,但在web上下文中bean的作用域

  • 我有一个springbean和scope会话。这个bean持有对另一个不可序列化的单例bean的引用。如果我想序列化会话范围的bean,最好的方法是什么? 这里已经提出了同样的问题:Spring会话范围的bean(控制器)和对服务的引用,在序列化方面 公认的答案是: 这个问题在Spring 3.0中通过提供一个非序列化bean的代理来解决,该代理从当前应用程序上下文中获取实例 据我所知,链接视频中

  • 问题内容: 我将JSF 2用于视图,将Spring用于业务逻辑。我正在尝试使用注解(@Scope(“ session”))将会话范围设置为我的一个Spring bean,但是却遇到了这个异常: 我知道RequestContextListener。在我的web.xml中。我还添加了RequestContextFilter: 似乎没有任何作用。我究竟做错了什么?谢谢! 问题答案: 尝试使用aop:sc

  • 我们知道Spring框架提供了单例、原型、请求、会话、全局会话bean范围。 我们还知道Spring Web流提供了flow Scope、viewScope、Request estScope、flash Scope、versationScope。 因此,如果我在spring MVC项目中提到一个组件,比如说Student,作为@Component@Scope=singleton。对于每个请求,它会

  • 问题内容: 我有一个User类: 和一个控制器类: 我使会话无效,以便下次我进入/ users时,我得到另一个用户。由于用户的会话范围,我期望使用其他用户,但是我得到的是同一用户。我在调试模式下进行了检查,它与内存中的对象ID是相同的。我的bean声明为: 我是春季新手,所以我显然做错了什么。我希望每个会话有一个User实例。怎么样? 问题答案: 这是预期的行为。当标记带有代理的bean时,将为其

  • 通常,默认范围是请求范围。我曾尝试删除范围注释,并希望bean具有请求bean作用域行为(通过在前一页返回提交的值,我记得我过去曾尝试过,效果很好),但我没有得到与之相关的表达式语言。那么默认范围是什么,为什么不是相同的行为?!