Ressort de Fil d'une Classe Statique

Je fais face à un héritage de la base de code où une classe qui n'est pas câblé jusqu'au printemps doit obtenir une classe qui est câblé jusqu'au printemps. J'espérais pour créer une usine de classe qui a été branché au démarrage et ensuite seulement je pouvais appeler la méthode getInstance() pour obtenir un filaire haut de l'objet. Quelle est la meilleure façon d'aller à ce sujet?

Exemple:

public class LegacyA {
    public void doSomething() {
        ...
        Foo foo = FooFactory.getInstance();
        ...
    }
}

public class FooFactory {
    private static Foo foo;

    public static Foo getInstance() {
        if (foo == null) throw new IllegalStateException();
        return foo;
    }
}

J'ai besoin de FooFactory pour être branché au démarrage de sorte que LegacyA pouvez simplement appeler getInstance() pour qu'elle renvoie une instance de Foo (qui est aussi un bean défini dans le contexte de l'application).

<bean id="legacyA" class="LegacyA"/>

<bean id="foo" class="Foo"/>

<!-- I need this bean to be injected with foo so that the FooFactory can return a foo -->
<bean id="fooFactory" class="FooFactory"/>

Edit: j'ai eu à re-travailler mon exemple un peu comme je l'ai eu un peu confuzzled dans ma tête...

Comment Foo injecté dans FooFactory? Un setter, constructeur, ...?

OriginalL'auteur digiarnie | 2009-07-28