Spring Bean有5个作用域,但是最近有需求在多个地方获取同一个Bean,只修改其中一个参数。那么Bean只在一个地方注入,修改属性就好,名字能一样吗?一系列问题
这个StepScope是什么鬼,5个默认的Scope能满足需求吗?
Bean scopes
Scope | Description |
---|---|
singleton | Scopes a single bean definition to a single object instance per Spring IoC container. |
prototype | Scopes a single bean definition to any number of object instances. |
request | Scopes a single bean definition to the lifecycle of a single HTTP request; that is each and every HTTP request will have its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext. |
session | Scopes a single bean definition to the lifecycle of a HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext. |
global session | Scopes a single bean definition to the lifecycle of a global HTTP Session. Typically only valid when used in a portlet context. Only valid in the context of a web-aware Spring ApplicationContext. |
通常我们使用的是singleton,默认也是。在测试中发现提供相同类型的Bean,需要指定不同的name标识(@Bean("three")),使用时对应@Qualifier("three")。