是否可以按名称或其值创建Bean Singleton?

时间:2015-08-17 12:38:43

标签: spring spring-bean

我想创建按唯一名称(Bean名称)排序的单个实例。

因此myBeanName1将是spring上下文中的一个实例。 另一个myBeanName2跨越spring上下文。

是否可以这样做?我对在方法级别定义的@Bean注释感到困惑。

根据我的理解,每当我调用它时,@ Bean将始终返回新的(原型)实例,直到我使用此@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON)来控制创建行为。

(我知道在春天Bean默认是Singleton。)

请澄清。

@Bean(name="myBeanName1")
@ConfigurationProperties(prefix="proect.entity1")
public Preference entityDefault() {return new Preference();}

@Bean(name="myBeanName2")
@ConfigurationProperties(prefix="proect.entity2")
public Preference entityDefault() {return new Preference();}

1 个答案:

答案 0 :(得分:0)

@Bean注释将方法标记为创建bean的工厂。 Spring bean默认是单例,并在启动时注册容器。如果需要多个实例,则需要将其范围显式配置为原型。原型bean是按需创建的。