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

is it possible to create Bean Singleton by name or its value?

我想通过唯一名称(Bean 名称)创建首选项的单个实例。

所以 myBeanName1 将是 spring 上下文中的一个实例。 spring 上下文中的另一个 myBeanName2。

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

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

(我知道 spring 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();}

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