在 Spring 中,IoC(Inversion of Control)容器负责管理应用程序中的对象(称为 Bean),并通过依赖注入将它们组装起来。Bean 的作用域定义了 Bean 对象的生命周期和可见范围。在 Spring 中,最常见的作用域是 singleton 和 prototype。
在 singleton 作用域下,IoC 容器中的每个 Bean 都只有一个实例,该实例在容器启动时创建,并在整个应用程序生命周期内存在。
<bean id="mySingletonBean" class="com.example.MySingletonBean" scope="singleton"/>
import org.springframework.stereotype.Component; @Component public class MySingletonBean { // Bean 的属性和方法 }
在 prototype 作用域下,每次请求 Bean 时,IoC 容器都会创建一个新的实例。每个实例在创建后就被返回给调用者,且不会被容器所管理。
<bean id="myPrototypeBean" class="com.example.MyPrototypeBean" scope="prototype"/>
import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @Component @Scope("prototype") public class MyPrototypeBean { // Bean 的属性和方法 }
选择适合的作用域是根据你的业务需求和应用程序的特点来决定的。在配置时要谨慎选择,并确保理解每种作用域的含义和影响。
原文链接:codingdict.net