2

ここで、 using は applicationContext.getBean("somebeananmehere") が悪いと見なされることを読みました。

もしそうなら、どのようにプログラムで豆を取得しますか(ユーザーが望む豆の種類によって異なります。たとえば、リンゴ、石鹸、洗剤などのさまざまな食料品を選択できるとしましょう)?

まあ言ってみれば

switch(num){
  case 1 : myGrocery  = (GroceryItem) applicationContext.getBean("SOAP");break;
  case 2: myGrocery = (GroceryItem) applicationContext.getBean("APPLE");break;
  default:
   //more code here
}

これは、ユーザーが自分の食料品を選択しているアプリケーションで行っていることです。(これはコンソール アプリケーションです)

applicationContext.getBean が悪いと見なされる場合、代替手段は何ですか?

4

3 に答える 3

1

ルックアップメソッドインジェクションを探しています。

http://static.springsource.org/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-method-injectionを参照してください

于 2013-02-20T10:40:51.620 に答える
0

これをチェックして

class Example {

  private SOAP soap;

  @Autowired
  public void setSoap(SOAP soap) {
    this.soap= soap;
  }

  private APPLE apple;

  @Autowired
  public void setApple(APPLE apple) {
    this.apple= apple;
  }


  public void yourMethod(int num) {
   switch(num){
    case 1 : myGrocery  = (GroceryItem) soap;break;
    case 2: myGrocery = (GroceryItem) apple;break;
    default:
     //more code here
    }
 }

}
于 2013-02-20T05:08:44.183 に答える
0

スプリングのfactory-methodオプションを使用できます。適切なクラスを返すファクトリ メソッドを xml Bean に記述するだけです。

<bean factory-method="your factory method name" class="your class" /> 
于 2013-02-20T05:19:55.783 に答える