2017-05-09 17 views
1

はのは、私は車のオブジェクト春 - シングルトンの工場インスタンス化プロトタイプが豆をスコープ

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を取り除くことができますどのような方法があります返す工場CarFactoryがあるとしましょうか?誰かがMercとMclarenを工場に注入して返すように提案しました。しかし、これは常に同じオブジェクトが返されることを意味します。傭兵のためのまた

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

:私は、次のBeanを毎回彼らは(今までに、設定クラスの名前がまたは何)あなたのSpringApplicationの工場

答えて

4

設定から要求されている新しい車のオブジェクトを作成する必要があります。

その後、@Autowiredでビーンを注入できます。 @Scope("prototype")のために、Springはリクエストされるたびに毎回新しいBeanを作成します。

関連する問題