我对这个小话题感到困惑。我在某处读到,如果一个类用 注释@Component,它是 spring 管理的 bean,每当需要时,spring 都会提供它。我将它与 bean 的范围混淆了。让我解释:
比方说一堂课
@Component
public class Example{ }
如果我在其他类中使用 实例化这个类new Example(),容器会一直为我提供相同的 Example 对象吗?还是每次都会返回我新的对象?
这是令人困惑的部分:
如果在同一个班级我有两个这样的豆子:
@Component
public class Example {
@Bean DataSource sqlDataSource() {
// some logic
}
@Bean @Scope("prototype") SomeObject getSomeObject() {
return new SomeObject(sqlDataSource()); //**
}
}
在这种情况下会发生什么?每次请求 SomeObject bean 时,sqlDataSource() 方法调用都会一次又一次地返回相同的对象,还是每次请求 SomeObject 时都会返回新的 DataSource 实例?
请帮忙。
天涯尽头无女友
POPMUISE
相关分类