gpt4 book ai didi

java - Spring - 单例工厂实例化原型(prototype)作用域 bean

转载 作者:行者123 更新时间:2023-11-29 08:36:20 24 4
gpt4 key购买 nike

假设我有一个返回汽车对象的工厂 CarFactory

class CarFactory {
@Autowired
ApplicationContext context;

public Car get(String type) {
if(type.equals("Merc")
return context.getBean(Merc.class);
if(type.equals("Mclaren")
return context.getBean(Mclaren.class);
}
}

有什么方法可以摆脱 context.getBean 吗?有人建议将 Merc 和 Mclaren 注入(inject)工厂并归还。但这意味着总是返回同一个对象。每当工厂请求它们时,我都需要创建新的 Car 对象

最佳答案

在您的 SpringApplication(或您的配置类的任何名称)中配置以下 bean:

@Bean
@Scope("prototype")
public McLaren mcLarenProtyoe() {
return new McLaren();
}

也适用于 Merc。

之后,您可以通过 @Autowired 注入(inject) bean。并且由于 @Scope("prototype") 每次请求新 bean 时,Spring 都会创建它。

关于java - Spring - 单例工厂实例化原型(prototype)作用域 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868937/

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