Nebudu muset měnit jeden řádek kódu, ale celý Spring IoC container? Hmm...
Netusim, co chces menit na IoC ocntaineru.
Spring funguje tak, ze jej pomoci anotace @Autowired pozadas, at ti na prislusne misto injectuje objekt pomoci reflection API, ktery implementuje prislusny interface.
A protoze mas v claspath pouze jednu takovou implementaci, Spring ji automaticky instanciuje. Pokud je jich vic, pak se pomoci @Qualifier urci, ktera se ma pouzit. Pokud je jich vic a Spring nema jak urcit, kterou zvolit, Spring zbuchne apliakci hned na startu, oprav si to, hnupe.
Jednoduchy princip.
Takze v tvem pripade, kdyz potrebujes nahradit tridu, staci ji vymenit na classpath a Spring se postara o zbytek. Spring defacto pri spusteni aplikaci tuto aplikaci teprve sestavi podle sve konfigurace, jednotlive spring beany ne neinstancujou pres new, ale nechava se to Springovi, aby sam instanci vytvoril a na prislusne misto injektoval.
Neni potreba menit jediny radek kodu a ani ten kod vubec nemusis mit k dispozici, Spring si vystaci se zkompilovanymi classes.