[Javalist] Spring AOP advice nem fut

István Székely istvan.szekely1 at gmail.com
2013. Okt. 4., P, 12:17:26 CEST


Köszi Magyusz, ez lett a megoldás!

Azért egy megjegyzésem lenne. Szerintem elég csúnya, hogy az advised
osztálynak tudnia kell arról, hogy ő advised vagy nem, mert annak
megfelelően kell leprogramozni a saját metódus hívását.

Üdv,
Stivi



2013. október 4. 1:34 Tamás Magyar írta, <magyusz at gmail.com>:

> AopContext.currentProxy()
>
> 2013/10/4 István Székely <istvan.szekely1 at gmail.com>:
> > 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>:
> >
> >> 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
> > 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/20131004/f33e8b9d/attachment.html>


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