proxy-target-class="true",就可以用cglib去触发。
静态编入 比 动态编入 应该效率好一些。 spring-aop不好用,没有注解,所以搞出来spring-aspects, 靠注解就能搞定,spring-aspects其实和AspectJ没有任何关系,没有用到aspect的实现,只是用了AspectJ的类定义,所以它不是编译植入,而是动态植入,所以也需要代理实现(jdk或者cglib)
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-proxying
这个
proxy-target-class,虽然可以在好几个个地方设置,但是其实只要设置一个地方,就影响到所有,也就是只要一个地方设置为true,那么就都是true。
<aop:config proxy-target-class="true"/><aop:aspectj-autoproxy proxy-target-class="true">
<tx:annotation-driven
proxy-target-class="true"
/>
<task
:annotation-driven
proxy-target-class="true"
/>
<cache:annotation-driven
proxy-target-class="true
/>...
文档是这么写的,既然都是一票定,为啥还要搞一个
ScopedProxyMode?
proxyMode = ScopedProxyMode.TARGET_CLASS还能以bean单位进行的定义?
找了个文章
http://www.udpwork.com/item/15373.html
这个文字的意思
>>这个的答案是,
aspectj虽然是静态,但spring-aspectj还是动态。用了@Aspectj注释的,就算method不是public的,也起作用,就多这么一个好处+可以不xml而可以注解来设置? 如果只是这样,
@Aspectj用处就不算啥了。
没有评论:
发表评论