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

Spring MVC声明所有bean单例

胡元明
2023-03-14
问题内容

我有这个新的mvc项目,其中所有bean都是默认作用域的(没有原型或会话)。与单个应用程序上下文。

我想通过使所有bean都成为默认范围来知道我们是否试图使整个应用程序在单线程中运行?

如果是这样的话,是否会使每个httprequest(来自多个或相同会话)排队,直到上一个完成?如何避免这种情况,任何建议或链接都​​将有所帮助。

我对Spring和Java开发相对较新。


问题答案:

由于Spring
bean通常是无状态的,因此您可以从多个线程中安全地调用它们。这就是您的应用程序的工作方式:每个控制器,服务,DAO等都只有一个实例。但是您的servlet容器(通过Spring)从多个线程中调用这些bean-
这是完全线程安全的。

实际上,在普通servlet中,情况是一样的-
每个servlet仅存在一个实例,并且可以通过无限多个线程进行访问。只要此Servlet是无状态的或正确同步的。

不要将Spring与池中的ejb中的无状态会话bean混淆,每个客户端都从池中获取自己的实例。1个

1-实际上有点愚蠢-由于Bean根据定义是无状态的,因此没有必要将它们合并并阻止并发访问…



 类似资料:
  • 本文向大家介绍SpringMVC+MyBatis声明式事务管理,包括了SpringMVC+MyBatis声明式事务管理的使用技巧和注意事项,需要的朋友参考一下 采用的基本搭建环境:SpringMVC、MyBatis、MySQL、tomcat         Spring事务管理分解了传统的全局事务管理和本地事务管理的劣势,使得在任何环境中都可以使用统一的事务管理模型,你可以写一次代码,然后在不同的

  • 问题内容: 有没有一种方法可以有条件地声明Spring bean: 不必使用配置文件,这将很有用。我没有特定的用例,但这是我想到的。 问题答案: 你可以使用@Conditional从spring4或@ConditionalOnProperty从springBoot.。 Using Spring4 (only) 如果你不使用Spring Boot,这可能会过大。 首先,创建一个类,在其中可以访问:

  • gcc是否有一个选项来禁用未显式定义为volatile的全局变量的读/写优化? 我的团队正在耗尽我们的嵌入式C项目的程序内存,该项目使用gcc构建。当我启用优化以减少代码大小时,代码不再像预期的那样工作,因为我们没有在我们应该使用的地方使用volatile关键字。也就是说,我能够通过声明在ISRs Volatile中访问的几个变量来解决呈现的问题。然而,我并不确定这些是我需要声明volatile的

  • 本文向大家介绍Android 舱单声明-,包括了Android 舱单声明-的使用技巧和注意事项,需要的朋友参考一下 示例 AppWidgetProvider在应用程序的AndroidManifest.xml文件中声明该类。例如:            

  • 你好,Iam在spring(IntelliJ IDEA终极版)中使用AspectJ风格的AOP时遇到了麻烦。不使用方面时,输出与预期相同。但是当我将方面类受众声明为Bean时,我得到了Macbeth类的NoSuchBeanDefinitionException。 2017年8月27日上午9:38:39 org.springframework.context.annotationconfigappl

  • 我是Spring的新手,并试图理解在我的Spring配置文件中声明的bean标记,如下所示: 我正在努力理解这5行代码。第一行表示它是一个XML文件。请有人帮我理解其他4行,以及向Spring应用程序提供这些信息的原因。