ich einen Prototyp BeanFactory haben (CreateCarAction
ist Frühling Bohne, scope = Prototyp):autowiring abstrakte Komponente
@Component("createCarActionFactory")
public abstract class CreateCarActionFactory {
@Lookup
public abstract CreateCarAction createCarAction();
}
und ich es so Autowire:
@Autowired
@Qualifier("createCarActionFactory")
private CreateCarActionFactory createCarActionFactory;
Es funktioniert, wenn ich abstrakt entfernen von CreateCarActionFactory
. Wenn ich abstract entferne, muss ich createCarAction() implementieren - ich brauche diese Implementierung nicht, da @Lookup sie überschreibt. Als ich von CreateCarActionFactory
zurücktreten muss ich CreateCarAction
Form BeanFactory zugreifen, so dass ich Jave zu Autowire BeanFactory, die auch hässlich ..
Kann ich autowire abstrakt CreateCarActionFactory
@Component
?
Warum verwenden Sie nicht den Provider? '' 'Provider createCarActionProvider;' '' und dann einfach '' 'createCarActionProvider.get()' ''. –
hya
Sie können abstrakte Klasse nicht autowire - http://StackOverflow.com/a/15971422/1814524 – hya
hya - ich verstehe nicht, wo wäre die Implementierung eines solchen Providers? Wie würde es neue Klasse mit autoverwirkten 2 Frühlingsbohnen schaffen? Dies ist der Grund, warum ich Lookup verwende. – michealAtmi