<div dir="ltr"><div><div><div><div><div>Hali!<br><br></div>Igen, ez kimaradt: <aop:aspectj-autoproxy proxy-target-class="true"/><br><br></div>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.<br>
[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.]<br><br></div>Nem emlékszel, mi volt a megoldás? A natív AspectJ-t kihagynám, ha lehet.<br><br></div>Üdv,<br>
</div>Stivi<br><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013. október 4. 0:11 Ize írta, <span dir="ltr"><<a href="mailto:sicher@freemail.hu" target="_blank">sicher@freemail.hu</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hali!<br>
<br>
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). <br>
A public nem mindegy, mert a proxy-s csak azzal mukodik,
private/protected-hez native AspectJ weaving kell.<br>
<br>
Udv.:<br>
Ize<div><div class="h5"><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>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Sziasztok!<br>
<br>
</div>
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.<br>
<br>
</div>
Tehát valami ilyesmi:<br>
<br>
</div>
@Aspect<br>
</div>
public class A {<br>
</div>
@Pointcut("within(com.x.y.z..*) &&
@annotation(com.a.b.C)")<br>
</div>
public void p() {}<br>
</div>
@Around("p()")<br>
</div>
public void advice(...) { ... }<br>
<div>
<div>
<div>
<div>}<br>
<br>
</div>
<div>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.<br>
<br>
</div>
<div>Hogyan lehetséges ez, és főleg, mi a megoldás?<br>
<br>
</div>
<div>Üdv<br>
</div>
<div>Stivi<br></div></div></div></div></div></div></div></blockquote></div></blockquote></div><br></div></div></div></div>