Frühling: Warum wird das Interface automatisch verdrahtet und nicht die implementierte Klasse?
Beispiel
interface IA
{
public void someFunction();
}
@Resource(name="b")
class B implements IA
{
public void someFunction()
{
//busy code block
}
public void someBfunc()
{
//doing b things
}
}
@Resource(name="c")
class C implements IA
{
public void someFunction()
{
//busy code block
}
public void someCfunc()
{
//doing C things
}
}
class MyRunner
{
@Autowire
@Qualifier("b")
IA worker;
worker.someFunction();
}
Kann mir jemand das erklären.
Woher weiß der Frühling, welchen polymorphen Typ er verwenden soll?Brauche ich@Qualifier
oder@Resource
?Warum wird die Schnittstelle und nicht die implementierte Klasse automatisch verkabelt?