在Spring框架中,Bean的作用域(Scope)定义了Bean实例的生命周期和可见范围。Spring支持以下几种常见的Bean作用域:
@Component
public class MySingletonBean {
// ...
}
getBean()
方法或注入依赖时,都会返回一个新的Bean实例。@Component
@Scope("prototype")
public class MyPrototypeBean {
// ...
}
@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MyRequestScopedBean {
// ...
}
@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MySessionScopedBean {
// ...
}
SESSION
作用域,但适用于分布式环境。@Component
@Scope(value = WebApplicationContext.SCOPE_GLOBAL_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MyGlobalSessionScopedBean {
// ...
}
@Component
@Scope(value = WebApplicationContext.SCOPE_APPLICATION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MyApplicationScopedBean {
// ...
}
需要注意的是,除了Singleton作用域外,其他作用域主要用于Web应用程序,因为它们依赖于HTTP请求和会话。在非Web环境中,通常使用Singleton和Prototype作用域。
Proudly powered by WordPress