gpt4 book ai didi

java中spring的bean作用域和生命周期

转载 作者:行者123 更新时间:2023-11-30 02:01:59 24 4
gpt4 key购买 nike

我有这个问题,在 Spring Web 应用程序中,当我们声明一个 bean 单例并且在 bean 原型(prototype)内每次调用单例时,原型(prototype) bean 将是相同的,但是如果我想要一个在 faacde 内的原型(prototype)组件 Controller ,如果其他组件都是单例,那么最后一个组件如何成为原型(prototype)?模式是这个单例 Controller ->单异常(exception)观->原型(prototype)服务感谢你。

最佳答案

如果我理解正确的话,您可以使用很多选项。最受欢迎:

1.范围代理。将此注释添加到您的原型(prototype) bean 中:

@范围(
值= ConfigurableBeanFactory.SCOPE_PROTOTYPE,
proxyMode = ScopedProxyMode.TARGET_CLASS)

2.@Lookup 注解与方法注入(inject):

@Component
public class SingletonFacade {

@Lookup
public PrototypeBean getPrototypeService() {
return null;
}
}

3.ObjectFactory接口(interface):

@Componenet
public class SingletonFacade {

@Autowired
private ObjectFactory<PrototypeService> prototypeBeanObjectFactory;

public PrototypeBean getPrototypeInstance() {
return prototypeBeanObjectFactory.getObject();
}
}

您可以在这里找到更多信息 - https://www.baeldung.com/spring-inject-prototype-bean-into-singleton

关于java中spring的bean作用域和生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563394/

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