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