<div dir="ltr">Valami olyasmire próbálod használni az aspektusokat, amire nem biztos, hogy valók. Egy osztály belső implementációjába belenyúlni, és arra hagyatkozni, hogy tudjuk, hogy az a() meghívja a b()-t, nem szerencsés.<br>
Valszeg amúgy azért működik így, mert a proxy egy külön objektum példány, ami csak delegálja a valós példányhoz a metódus hívásokat, miután lekezeli az interceptor hívásokat.<br><br><br>Üdv<br> Zs<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/10/4 István Székely <span dir="ltr"><<a href="mailto:istvan.szekely1@gmail.com" target="_blank">istvan.szekely1@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div>Köszi Magyusz, ez lett a megoldás!<br><br></div>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.<br>
<br></div>Üdv,<br></div>Stivi<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013. október 4. 1:34 Tamás Magyar írta, <span dir="ltr"><<a href="mailto:magyusz@gmail.com" target="_blank">magyusz@gmail.com</a>></span>:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">AopContext.currentProxy()<br>
<br>
2013/10/4 István Székely <<a href="mailto:istvan.szekely1@gmail.com" target="_blank">istvan.szekely1@gmail.com</a>>:<br>
<div><div>> Hali!<br>
><br>
> Igen, ez kimaradt: <aop:aspectj-autoproxy proxy-target-class="true"/><br>
><br>
> Tehát CGLIB-es proxy-k vannak. A többi rész is pont úgy van, ahogy mondod,<br>
> a() hívja b()-t, és mindkét metódus ugyanabban az osztályban van. Először<br>
> b() private volt, de aztán public-ot csináltam belőle, nehogy az legyen a<br>
> baj, de úgy sem megy.<br>
> [Van egy olyan forgatókönyv is, hogy b() absztrakt, és egy másik osztályban<br>
> van implementálva, és akkor sem működik.]<br>
><br>
> Nem emlékszel, mi volt a megoldás? A natív AspectJ-t kihagynám, ha lehet.<br>
><br>
> Üdv,<br>
> Stivi<br>
><br>
><br>
> 2013. október 4. 0:11 Ize írta, <<a href="mailto:sicher@freemail.hu" target="_blank">sicher@freemail.hu</a>>:<br>
><br>
>> Hali!<br>
>><br>
>> Nekem valamikor regen akkor volt ilyen problemam, ha a metodus osztalyon<br>
>> belulrol hivodott (hiaba volt public). Mitha osszefuggene a dolog a a<br>
>> proxy-based AOP-pal (tippem szerint ezt hasznalod).<br>
>> A public nem mindegy, mert a proxy-s csak azzal mukodik,<br>
>> private/protected-hez native AspectJ weaving kell.<br>
>><br>
>> Udv.:<br>
>> Ize<br>
>><br>
>><br>
>> On <a href="tel:2013.%2010.%2003.%2016" value="+12013100316" target="_blank">2013. 10. 03. 16</a>:24, István Székely wrote:<br>
>><br>
>> Sziasztok!<br>
>><br>
>> Van egy annotációm, amit metódusok megjelölésére használok. Van egy Spring<br>
>> AOP-s aspect, ami úgy van megadva, hogy bizonyos csomagban és az<br>
>> alcsomagokban az annotációval megjelölt metódusokra fusson le egy @Around<br>
>> advice.<br>
>><br>
>> Tehát valami ilyesmi:<br>
>><br>
>> @Aspect<br>
>> public class A {<br>
>> @Pointcut("within(com.x.y.z..*) && @annotation(com.a.b.C)")<br>
>> public void p() {}<br>
>> @Around("p()")<br>
>> public void advice(...) { ... }<br>
>> }<br>
>><br>
>> Adott egy osztály, amiben van két metódus, a() és b(), közvetlenül egymás<br>
>> alatt definiálva, és mindkettő public (bár ez talán mindegy is). Ha az<br>
>> annotációt a-ra teszem, akkor szépen lefut az advice, ha b-re, akkor pedig<br>
>> nem.<br>
>><br>
>> Hogyan lehetséges ez, és főleg, mi a megoldás?<br>
>><br>
>> Üdv<br>
>> Stivi<br>
><br>
><br>
><br>
</div></div><div><div>> _______________________________________________<br>
> Javalist mailing list<br>
> <a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
> <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
><br>
_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</div></div></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br></blockquote></div><br></div>