[Javalist] Spring AOP advice nem fut

Tamás Magyar magyusz at gmail.com
2013. Okt. 4., P, 18:26:52 CEST


Ne hibaztassuk az AOPt használó programozót azért mert adott AOP
weaving technológia nem tud valamit. Nem hiba Servicebol magát hívni
szerintem.

On Friday, October 4, 2013, István Viczián wrote:

> Már két cégnél is voltam még nagyon régen, ahol ez felvételi kérdés volt.
> :)
> --
> Viczián István
>
>
> Tamás Magyar <magyusz at gmail.com <javascript:;>> írta (2013. október 4.
> 1:34):
> > AopContext.currentProxy()
> >
> > 2013/10/4 István Székely <istvan.szekely1 at gmail.com <javascript:;>>:
> >> Hali!
> >>
> >> Igen, ez kimaradt: <aop:aspectj-autoproxy proxy-target-class="true"/>
> >>
> >> Tehát CGLIB-es proxy-k vannak. A többi rész is pont úgy van, ahogy
> mondod,
> >> a() hívja b()-t, és mindkét metódus ugyanabban az osztályban van.
> Először
> >> b() private volt, de aztán public-ot csináltam belőle, nehogy az legyen
> a
> >> baj, de úgy sem megy.
> >> [Van egy olyan forgatókönyv is, hogy b() absztrakt, és egy másik
> osztályban
> >> van implementálva, és akkor sem működik.]
> >>
> >> Nem emlékszel, mi volt a megoldás? A natív AspectJ-t kihagynám, ha
> lehet.
> >>
> >> Üdv,
> >> Stivi
> >>
> >>
> >> 2013. október 4. 0:11 Ize írta, <sicher at freemail.hu <javascript:;>>:
> >>
> >>> Hali!
> >>>
> >>> Nekem valamikor regen akkor volt ilyen problemam, ha a metodus
> osztalyon
> >>> belulrol hivodott (hiaba volt public). Mitha osszefuggene a dolog a a
> >>> proxy-based AOP-pal (tippem szerint ezt hasznalod).
> >>> A public nem mindegy, mert a proxy-s csak azzal mukodik,
> >>> private/protected-hez native AspectJ weaving kell.
> >>>
> >>> Udv.:
> >>>   Ize
> >>>
> >>>
> >>> On 2013. 10. 03. 16:24, István Székely wrote:
> >>>
> >>> Sziasztok!
> >>>
> >>> Van egy annotációm, amit metódusok megjelölésére használok. Van egy
> Spring
> >>> AOP-s aspect, ami úgy van megadva, hogy bizonyos csomagban és az
> >>> alcsomagokban az annotációval megjelölt metódusokra fusson le egy
> @Around
> >>> advice.
> >>>
> >>> Tehát valami ilyesmi:
> >>>
> >>> @Aspect
> >>> public class A {
> >>>     @Pointcut("within(com.x.y.z..*) && @annotation(com.a.b.C)")
> >>>     public void p() {}
> >>>     @Around("p()")
> >>>     public void advice(...) { ... }
> >>> }
> >>>
> >>> Adott egy osztály, amiben van két metódus, a() és b(), közvetlenül
> egymás
> >>> alatt definiálva, és mindkettő public (bár ez talán mindegy is). Ha az
> >>> annotációt a-ra teszem, akkor szépen lefut az advice, ha b-re, akkor
> pedig
> >>> nem.
> >>>
> >>> Hogyan lehetséges ez, és főleg, mi a megoldás?
> >>>
> >>> Üdv
> >>> Stivi
> >>
> >>
> >>
> >> _______________________________________________
> >> Javalist mailing list
> >> Javalist at lists.javaforum.hu <javascript:;>
> >> http://lists.javaforum.hu/mailman/listinfo/javalist
> >>
> > _______________________________________________
> > Javalist mailing list
> > Javalist at lists.javaforum.hu <javascript:;>
> > http://lists.javaforum.hu/mailman/listinfo/javalist
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu <javascript:;>
> http://lists.javaforum.hu/mailman/listinfo/javalist
>


-- 
Sent from Gmail Mobile
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20131004/919685a5/attachment.html>


További információk a(z) Javalist levelezőlistáról