Spring2.0升级Spring2.0.7的变化 - Go语言中文社区

Spring2.0升级Spring2.0.7的变化


Spring2.0的aop果然很大改动。aop文档开篇就介绍@Aspect注解方式的配置,其实我觉得统一aop的配置方式,并且使得它更加易用才是这次改动的成功之处。

初看schema的配置方式就觉得Spring2.0应该是用AutoProxyCreator来实现的。经过调看src,发现果然如此;同时关注了下order的实现,期望新引入的aspect和原来的advisor能并行。

(理论应该如此,可实际上Spring2.0发布的时候aspect并没有实现order,然后我的myeclipse的xml编辑器好像用了最新的 aop schema,导致我写xml的时候是可以写order,我还暗喜,然后运行就出错了~~;然后去了Spring官网,看看是不是schema的问题;看了Spring2.0.7的changelog后发现这个特性才加上~~~bug!!!不管怎么说,现在是好了,所以切记,整数的release版本是很危险的)Spring2.0.7以后修复/添加了order属性,使得aspect和advisor都能很好的并存,对Spring来说都是 advisor/advice  拉 ^_^ 。

看了Spring2.0.7后发现aop那块的代码在Spring2.0到Spring2.0.7中大改了,有一个原来用来加载aop config的类都没有了(或者是改名了)~~。现在的aop实现基本上是这样:

AspectJAwareAdvisorAutoProxyCreator 作为启用的默认AutoProxyCreator(如果你使用了的话AutoProxyCreator会换成 AnnotationAwareAspectJAutoProxyCreator)不过其实只是添加了搜索bean中标记了@Aspect的实例作为可用的advisor而已;order的排序方式好像也有改动,现在的排序没有什么问题。

性能上,由于采用了单一的AspectJAwareAdvisorAutoProxyCreator ,作为唯一的advisor配置库,在其中进行advisor的排序,所以再多的切面也只需要实例化一个bean的对象,切面在一个层次上进行,看似没有以前那么臃肿拉 :)

Spring2.0的aop配置比较集中,很清晰,也很简单。

<...>


版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/200906/130397.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 07:03:13
  • 阅读 ( 661 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢