1

Spring を使用して Web アプリケーションを開発しています。

私は共通の抽象クラスとその多くの実装を持っています。

さて、コントローラーでは、いくつかのパラメーターに応じて、さまざまな実装が必要です。

これは Factory Pattern で簡単に実装できます。

例えば:

abstract class Animal{
    public abstract void run(){
        }
}

class Dog extends Animal{   
...
}
Class Cat extends Animal{
...
}

ファクトリ パターンを使用して、いくつかのパラメータに基づいて動物を作成するファクトリ メソッドを使用してファクトリ クラスを作成できます。しかし、自分でインスタンスを作成したくありません

同じ機能が必要ですが、Spring にすべてを管理してもらいたいです。さまざまな実装には依存関係があり、Spring によってそれらを注入したいからです。

この状況を処理する最善の方法は何ですか?

4

3 に答える 3

1
@Component
public class AnimalFactory {
    @Autowired
    private Dog dog;

    @Autowired
    private Cat cat;

    public Animal create(String kind) {
        if (king.equals("dog") {
            return dog;
        }
        else {
            return cat;
        }
    }
}

@Component
public class Cat extends Animal {
    ...
}

@Component
public class Dog extends Animal {
    ...
}

@Component
private class Client {
    @Autowired
    private AnimalFactory factory;

    public void foo() {
        Animal animal = factory.create("dog"); 
        animal.run();
    }
}
于 2013-09-13T08:58:53.623 に答える