Java Spring-实例化原型范围bean的单例工厂

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

假设我有一个返回car对象的工厂
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