Пружинная проволока статического класса
Я имею дело с унаследованной кодовой базой, где класс, который не подключен весной, должен получить класс, который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"/>
Редактировать: мне пришлось немного переделать мой пример, так как я немного запутался в собственной голове ...