首页 文章

Spring Boot中的单例范围

提问于
浏览
1

所以我的问题是关于 Spring 季靴子的单身范围 . 我曾经参与过一些Spring启动项目,但是我从未见过使用Prototype范围注释的类,因此我假设所有定义的bean在spring boot中默认为singleton . 现在假设2个线程正在访问单独的bean,那么在这种情况下,我们如何确保一个线程所做的更改不会影响在同一个bean上工作的另一个线程 .

现在您可以说我们可以进行同步,但我还没有在使用同步来避免这种情况的Web应用程序中看到过 . 那么 Spring 季靴子究竟是如何处理的呢 .

1 回答

  • 3

    任何bean的默认范围确实是Singleton . 接下来,所有的bean都应设计为无状态 . 如果bean是无状态的,则不必担心多个线程访问相同的Bean / Synchronization . 由于他们的数据不会相互修改 .

    What does stateless mean? 一种解释它的简单方法,您不应该有不同线程修改的类级别字段 . 您的状态应存储在会话,存储库或客户端中 .

    最后,为了澄清一些小问题,这不是一个Spring Boot问题,因为它是一个Spring Framework / Spring MVC问题 . Bean作用域是Core Framework的一部分(Spring MVC提供了更多作用域选项) .

相关问题