Spring bean scope



谁能告诉我如何将spring bean的范围限制到特定的数量,比如每个spring IOC容器2个bean ?

如果可能的话,那么使用哪个作用域我们可以实现这一点?

Spring并没有提供这样的功能。

同样,作用域的意图并不意味着将特定类型的bean的数量限制为固定的数量。某个范围内的bean的总数应该是动态的,这取决于与该范围相关的"进程"的数量。scope的目的是为特定的流程提供一个隔离的环境,这样每个流程都可以有自己的bean类型实例。

如果你真的想在你的应用程序中有两个特定类型的bean,只需要分别定义两个bean,并将它们配置为单例作用域(即默认作用域)。并使用@Qualifier(参见此)显式地配置将哪个bean注入到其他bean中。

@Configuration
public class AppConfig {

@Bean
public FooBean fooBean1(){
return new FooBean();
}

@Bean
public FooBean fooBean2(){
return new FooBean();
}
}

最新更新