Пружинная проволока статического класса

Я имею дело с унаследованной кодовой базой, где класс, который не подключен весной, должен получить класс, которыйis подключен весной. Я надеялся создать фабричный класс, который был подключен при запуске, а затем я мог просто вызвать метод getInstance (), чтобы получить подключенный объект. Каков наилучший способ сделать это?

Пример:

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;
    }
}

Мне нужно, чтобы FooFactory был подключен при запуске, чтобы LegacyA мог просто вызвать getInstance (), чтобы он возвращал экземпляр Foo (который также является компонентом, определенным в контексте приложения).

<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"/>

Редактировать: мне пришлось немного переделать мой пример, так как я немного запутался в собственной голове ...

Ответы на вопрос(3)

Ваш ответ на вопрос