浏览 8615 次
锁定老帖子 主题:关于Spring AOP中的@target
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-24
最后修改:2012-05-24
问题是这样的: Spring AOP中,@Target(xxx),表示对标记有xxx注解的类,做代理。 我想对某些类或者某些方法做代理,达到@Transcational的效果, 即标记类,该代理类所有public方法,标记方法,则代理该方法。 但是使用中发现,所有的bean都被代理过了,str也被代理了! me.aop.Bean1有@Tag标记,me.aop.Bean2没有 为什么会这样,哪里理解错了??? 路过的达人们发表下高见啊! XML文件: <aop:config> <aop:aspect ref="someAdvice"> <aop:before pointcut="@target(tag)" method="beforeAdvice" arg-names="tag"/> </aop:aspect> </aop:config> <bean id="someAdvice" class="me.aop.SomeAdvice" /> <bean id="bean1" class="me.aop.Bean1" /> <bean id="bean2" class="me.aop.Bean2"> <property name="str" ref="str"/> </bean> <bean id="str" class="java.lang.String"> <constructor-arg index="0" value="123"/> </bean> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-24
看到你这个代码,我表示很蛋疼。
|
|
返回顶楼 | |
发表时间:2012-05-24
最后修改:2012-05-24
shine_sun 写道 看到你这个代码,我表示很蛋疼。
理解这个XML没难度吧? |
|
返回顶楼 | |
发表时间:2012-05-25
最后修改:2012-05-25
好吧,这样冷清的回帖在意料中;
通过expression表达式配置AOP没成功,换成BeanPostProcess+AnnotationMatchingPointcut方式实现; 但是我倾向于前一种方式,因为后一种意味着 代理 会发生于Bean生命周期中的2个步骤,即代理和后置处理, 生成的class也会变成这样 xxx$CGLIBxxx$CGLIBxxx,从安全、代码结构等角度来看,都是不优雅的。 |
|
返回顶楼 | |