Spring Bean 作用域
Spring Bean 的作用域决定了实例在容器中的存在范围。理解这一点对于管理内存和线程安全至关重要。
/**
* 实体类
*/
public class Dog {}
/**
* 配置类
*/
@Configuration
public class DogConfig {
// 单例:默认,整个容器仅一个实例
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public Dog singleDog() {
return new Dog();
}
// 原型:每次请求都创建新实例
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public Dog prototypeDog() {
return new Dog();
}
// 请求:每个 HTTP 请求一个新实例
@Bean
@RequestScope
public Dog requestDog() {
return new Dog();
}
// 会话:每个用户会话一个新实例
@Bean
@SessionScope
public Dog sessionDog() {
return new Dog();
}
// 应用:整个 Web 应用共享一个实例
@Bean
Dog {
();
}
}




