Java Spring-实例化原型范围bean的单例工厂
假设我有一个返回car对象的工厂Java Spring-实例化原型范围bean的单例工厂,java,spring,Java,Spring,假设我有一个返回car对象的工厂CarFactory class CarFactory { @Autowired ApplicationContext context; public Car get(String type) { if(type.equals("Merc") return context.getBean(Merc.class); if(type.equals
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
?有人建议在工厂里注射美世和迈凯轮,并将其退回。但这意味着总是返回相同的对象。每次从工厂请求新的Car对象时,我都需要在SpringApplication(或您的配置类的名称)中配置它们,如下bean:
@Bean
@Scope("prototype")
public McLaren mcLarenProtyoe() {
return new McLaren();
}
同样适用于美塞苔丝
之后,您可以通过
@Autowired
注入bean。由于@Scope(“prototype”)
Spring每次收到请求时都会创建一个新bean 在SpringApplication(或您的配置类的名称)中配置以下bean:
@Bean
@Scope("prototype")
public McLaren mcLarenProtyoe() {
return new McLaren();
}
同样适用于美塞苔丝
之后,您可以通过@Autowired
注入bean。由于@Scope(“prototype”)
Spring每次收到请求时都会创建一个新bean