我想创建按唯一名称(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();}
答案 0 :(得分:0)
@Bean注释将方法标记为创建bean的工厂。 Spring bean默认是单例,并在启动时注册容器。如果需要多个实例,则需要将其范围显式配置为原型。原型bean是按需创建的。