[Javalist] Spring Java Configuration
Tamás Fitos
tamas.fitos at gmail.com
2016. Nov. 1., K, 13:24:29 CET
Szia Péter!
Régen használtam már xml-es spring config-ot, de emlékeim szerint anno is meg kellett különböztetni a constructor alapú injektálást a property alapútól:
<bean id="foo" class="x.y.Foo">
<constructor-arg ref="bar"/>
<constructor-arg ref="baz"/>
</bean>
vs.
<bean id="foo" class="x.y.Foo">
<property name=“bar” ref=“bar”/>
<property name=“baz” ref=“baz”/>
</bean>
Én személy szerint nem látom, hogy ezzel probléma lenne, a konfigurációs részben függsz az osztály implementációs részleteitől amúgy is, valamint a java-s config esetében compile time hibát kapsz, ha az implementáció változik, tehát még csak veszélyeztetve sem vagy, hogy a változást nem reagálod le (ami amúgy baromi ritkán fog megesni).
Más DI framework-ben (pl. Guice v. Dagger) a helyzet ugyanez.
Üdv:
Tamás
On 1 November 2016 at 12:02:04, Peter Verhas (peter at verhas.com) wrote:
Van egy interface
public interface ProductLookup {
String getParam();
ProductInformation byId(String id);
List<String> byQuery(String query);
}
van több implementációja, az egyik
public class ResourceBasedProductLookup implements ProductLookup {
private String param;
public void setParam(String param) {
this.param = param;
}
public String getParam() {
return param;
}
(folytatódik...)
A spring konfiguráció
@Configuration
public class SpringConfiguration {
@Bean @Primary
public ProductLookup productLookup(){
ResourceBasedProductLookup pl = new ResourceBasedProductLookup();
pl.setParam("hukk");
return pl;
}
tud róla, hogy ez egy setter injection. Miért? Ha átírom konstruktor injekcióra a konfigurációnak erről nem kellene tudnia. Nem az ő dolga.
Ezt nem értem.
On Mon, Oct 31, 2016 at 10:38 AM Zsombor <gzsombor at gmail.com> wrote:
Nem teljesen értem, de azt hiszem a válasz a kérdésre igen. Az elég zavarossá tenné az inicializálást, ha valamely mezők konstruktorban inicializálódnának, valamelyeket meg utána a spring bele-mágiázná.
Jobb, szerintem, teljesen a spring-re bízni a bean létrehozást, és csak a legszükségesebbeket manuálisan életre pofozgatni.
Zs
2016-10-31 9:47 GMT+01:00 Peter Verhas <peter at verhas.com>:
Amikor egy Java nyelvű konfigurációs osztállyal kofigurálom a Spring-et, akkor jól látom, hogy a @Bean metódusok nincsenek szétválasztva az injektálás implementációjától? Ha tehát egy mezőt eddig setter-rel injektáltam és mostantól konstruktorban szeretném, akkor meg kell változtatnom a @Bean metódust a konfigurációban?
_______________________________________________
Javalist mailing list
Javalist at lists.javaforum.hu
http://lists.javaforum.hu/mailman/listinfo/javalist
_______________________________________________
Javalist mailing list
Javalist at lists.javaforum.hu
http://lists.javaforum.hu/mailman/listinfo/javalist
_______________________________________________
Javalist mailing list
Javalist at lists.javaforum.hu
http://lists.javaforum.hu/mailman/listinfo/javalist
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20161101/392195b8/attachment.html>
További információk a(z) Javalist levelezőlistáról