Talk:AOP
From APIDesign
(Comment provided by btilford - via ArticleComments extension) |
|||
Line 17: | Line 17: | ||
e.g. | e.g. | ||
+ | <source lang="java"> | ||
@Around("@annotation(com.mycompany.BoundProp)") | @Around("@annotation(com.mycompany.BoundProp)") | ||
+ | </source> | ||
would match all methods annotated with @com.mycompany.BoundProp | would match all methods annotated with @com.mycompany.BoundProp | ||
and you could still say only setters with 1 argument should be bound (since it might make sense to do that) | and you could still say only setters with 1 argument should be bound (since it might make sense to do that) | ||
+ | <source lang="java"> | ||
@Around("@annotation(com.mycompany.BoundProp) && execution(public * *..*.set*(*))") | @Around("@annotation(com.mycompany.BoundProp) && execution(public * *..*.set*(*))") | ||
+ | </source> | ||
--btilford 01:45, 19 November 2009 (CET) | --btilford 01:45, 19 November 2009 (CET) | ||
</div> | </div> | ||
+ | |||
+ | Thanks for your comment btilford. I did not know this. Still, this is slightly opposite approach. The end user still needs to deal with aspect and with meaning of ''@Around'' and pointcut ''public * *..*.set*(*))'' and setup the AspectJ compiler. I'm seeking for the possite: The user downloads library with ''com.mycompany.BoundProp'' annotations, applies the annotation to one of its classes and as a result all the setters in the class will become bounded. This is not big shift technologically, I guess, but huge improvement in ease of use. Not talking about the fact that it opens the door to create a market of reusable aspects. | ||
+ | |||
+ | --[[User:JaroslavTulach|JaroslavTulach]] 08:46, 19 November 2009 (UTC) |
Revision as of 08:46, 19 November 2009
Comments on AOP <comments />
NicolasDumoulin said ...
btilford said ...
AspectJ supports annotations pretty well plus you still have all the old methods of defining a pointcut (or combination) if you need to really specific.
e.g.
@Around("@annotation(com.mycompany.BoundProp)")
would match all methods annotated with @com.mycompany.BoundProp
and you could still say only setters with 1 argument should be bound (since it might make sense to do that)
@Around("@annotation(com.mycompany.BoundProp) && execution(public * *..*.set*(*))")
--btilford 01:45, 19 November 2009 (CET)
Thanks for your comment btilford. I did not know this. Still, this is slightly opposite approach. The end user still needs to deal with aspect and with meaning of @Around and pointcut public * *..*.set*(*)) and setup the AspectJ compiler. I'm seeking for the possite: The user downloads library with com.mycompany.BoundProp annotations, applies the annotation to one of its classes and as a result all the setters in the class will become bounded. This is not big shift technologically, I guess, but huge improvement in ease of use. Not talking about the fact that it opens the door to create a market of reusable aspects.
--JaroslavTulach 08:46, 19 November 2009 (UTC)
We use aspectj for defining and using an aspect that serve an automatic objects caching service. It's not so hard, you can see our notes here: http://www.simexplorer.org/wiki/DevDoc/AspectJ
--NicolasDumoulin 13:00, 13 November 2009 (CET)