Hmm,

oba uvedene pripady ale vyzaduju zasah do kodu ( odstranit @Component,
pridat @Qualifier ).
Co ked ale povodny autor kodu nepocital z moznostou nahradit jeho komponent
inou implementaciou ( tzn. pouziva sa @Component a zaroven autowiring )?

--
Dusan


Dňa 10. septembra 2010 21:00, Roman Pichlík
<[email protected]>napísal(-a):

> Nechapu proc nepouzijete id komponenty?
>
> @Component
> class Printer implements PrinterBase {
>   @Autowire("MessagerA")
>  private Messager messager;
>
> }
>
>
> @Component("MessagerA")
> public class MessagerA{
> }
>
> Samozrejme se to udelat i typove a ne binding skrze idcko viz 3.11.3.
> Fine-tuning annotation-based autowiring with qualifiers
>
> http://static.springsource.org/spring/docs/2.5.x/reference/beans.html#beans-autowired-annotation
>
>
>
> 2010/9/10 Dusan Msk <[email protected]>:
> > Ahoj.
> >
> > Mam spring kontext v javase aplikacii, zlozeny z:
> >
> > ifc PrinterBase { ... }
> > @Component class Printer implements PrinterBase {
> >   private Messager messager;
> > }
> >
> > ifc Messager { ... }
> > @Component class MessagerA implements Messager { ... }
> > @Component class MessagerB implements Messager { ... }
> >
> > ... a dalsie (unikatne) komponenty, ktore sa mi nechce explicitne
> > vymenovavat v xml.
> >
> > Chcel by som docielit toho, ze kontext bude vyskladany pomocou
> > autowire+scan, ale konkretne u komponenty Printer chcem manualne
> > specifikovat, ci sa ma pouzit MessagerA alebo MessagerB. Myslim, ze to je
> > vcelku obvykly poziadavok v modularnej aplikacii, takze by to nejak
> > mohli ist.
> >
> > Laboroval som s nasledovnym (nefunkcnym) kontextovym xml, ale spring
> hlasi,
> > ze si nevie vybrat medzi MessagerA a MessagerB v autowire:
> >
> >     <!-- snazim sa mu vnutit MessagerB -->
> >     <bean id="printer" class="cz.test.Printer"  autowire="no">
> >         <property name="messager" ref="messagerB"/>
> >     </bean>
> >
> >
> >     <!-- ale nez sa mi to podari, autowire vyhodi vynimku -->
> >     <context:annotation-config/>
> >     <context:component-scan base-package="cz.test"/>
> >
> >     <!-- skusal som aj odkomentovat manualnu specifikaciu MessagerB
> >       <bean id="messagerB" class="cz.test.MessagerB"/>
> >     ale bez vysledku -->
> >
> >
> >
> > Je vobec mozne takto konfiguraciu skombinovat?
> >
> > --
> > Diky
> >
> > Dusan
> >
>
>
>
> --
> S pozdravem Roman "Dagi" Pichlik
>
> /* http://dagblog.cz/ Blog pro kodery */
>

Odpovedet emailem