我正在阅读春季教程,并且正在研究bean的默认范围,因此默认情况下,范围仅是单调的。 但是,当我们在类中使用注释时,它们具有什么作用域?他们是否仅为JVM中的那些类创建单个对象?如果不是Web应用程序的工作原理,那么它将是线程安全的吗?
答案 0 :(得分:2)
但是当我们在类中使用注释时,它们具有什么作用域?
除非您使用@Scope
并指定其他范围,否则它们是单例。
它们仅为JVM中的那些类创建单个对象吗?
Spring为每个容器创建一个对象。这很重要,因为您的JVM可以一次运行多个Spring容器。
Web应用程序将是线程安全的吗?
由您决定。 Spring可以确保以线程安全的方式执行对组件的生命周期操作(例如,以线程安全的方式发布bean实例)。但是,Spring无法预测您的应用程序逻辑以及如何定义其正确性。因此,它不提供任何级别的同步,这可能是不够的或开销很大。
here是这方面的一个很好的讨论。
答案 1 :(得分:0)
Spring容器管理的每个bean默认情况下都具有Singleton范围,无论您使用批注还是xml,除非您不覆盖其默认值。