gpt4 book ai didi

java - 理解 Spring 4 注释 bean

转载 作者:行者123 更新时间:2023-12-01 10:45:33 25 4
gpt4 key购买 nike

第一次使用带有注释的Spring。我正在尝试定义一个单例 bean,例如:

@Bean
public ActionProducer actionProducer() {
return new ActionProducer();
}

但我觉得这不是正确的方法,因为每次都会返回一个"new"bean。我应该像下面这样定义吗?

@Bean
public ActionProducer actionProducer() {
if (bean==null)
bean=new ActionProducer();
return bean
}

提前致谢。

最佳答案

对于每个@Configuration类,Spring将创建一个代理来控制对这些@Bean方法的调用。因此,如果您有一个 @Bean 方法,该方法应该创建一个单例 bean(如果您没有指定其他范围,则默认情况下会这样做),代理将确保该方法仅被调用一次创建bean。所有进一步的调用都会被代理拦截,并且已经存在的 bean 将被返回。
这样,如果该类中有其他依赖于该 bean 的 bean,您甚至可以只调用该 bean 方法,而无需考虑作用域、重复实例等:

@Bean
public AnotherClass anotherClass() {
return new AnotherClass(actionProducer());
}

因此,不要绕过 Spring 功能,只需实现如下方法即可:

@Bean
public ActionProducer actionProducer() {
return new ActionProducer();
}

关于java - 理解 Spring 4 注释 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com