转载

Spring中Bean的作用域与StepScope关系、疑问

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")。

原文  https://juejin.im/post/5a69390d6fb9a01cb80fea63
正文到此结束
Loading...