您的位置:首页 > 编程语言 > Java开发

Spring.NET的AOP怎么玩

2017-05-10 14:06 260 查看
之前公司一直不让使用第三方组件,因此AOP方面的组建一直不能使用,很多面向切面的应用只能通过自己写一些GenericMethod的泛型方法来解决,有一些呆板。由于公司已经开始全面转Java,因此架构组放开了第三方组件的使用,这儿将对Spring.NET进行一个基础的学习。该项目虽然有1年都没有更新了(也反映了.NET品台热度的下降),但可以为未来使用JAVA最一定的铺垫,因此还是决定干了。

Spring.NET文档及官方地址:h t t p :/ /  w ww.s pri ngf ram ew or k.net/documentation.html

版本选择:1.3.2,创建日期为20110801.蛋蛋的忧伤。

 



Spring AOP基本原理:使用代理模式实现



这部分主要涉及两部分的内容,一种是通过代码添加Advices,一种是通过配置,推荐后者。

应用建议(Applying advice):应用于类中所有方法,粒度太粗。


 View
Code

Using Pointcuts应用切入点:可以控制为方法级别的粒度,实际中最常用,这儿介绍配置的方式。

<object id="consoleLoggingAroundAdvice"
type="Spring.Aop.Support.RegularExpressionMethodPointcutAdvisor">
<property name="pattern" value="Do"/>
<property name="advice">
<object type="Bjork.BaseService.BL.ConsoleLoggingAroundAdvice"/>
</property>
</object>
<object id="myServiceObject"
type="Spring.Aop.Framework.ProxyFactoryObject">
<property name="target">
<object id="myServiceObjectTarget"
type="Bjork.BaseService.BL.ServiceCommand"/>
</property>
<property name="interceptorNames">
<list>
<value>consoleLoggingAroundAdvice</value>
</list>
</property>
</object>


接下来介绍其他的拦截器

 Before advice
IMethodBeforeAdvice
Before(MethodInfo method, object[] args, object target)

After advice
IAfterReturningAdvice
AfterReturning(object returnValue, MethodInfo method, object[] args, object target)
Throws advice
IThrowsAdvice
AfterThrowing(Exception ex)
Around advice
IMethodInterceptor
Invoke(IMethodInvocation invocation)
 
Layering advice层次化建议(组合使用interceptor)


 View
Code

 

AOP的使用场景:缓存[Caching],性能监控,重试规则。

这部分内容就到此为止,还有其他事宜,这个暂时就不使用了,确实存在适用性上的问题。不像JAVA Spring一样的整合使用,确实使用性下降很多,比如不是所有的场景都适合使用容器,且会增加系统的复杂程度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: