Spring.NET的AOP怎么玩

简介:

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

Spring.NET文档及官方地址:http://www.springframework.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一样的整合使用,确实使用性下降很多,比如不是所有的场景都适合使用容器,且会增加系统的复杂程度。


本文转自 sshpp 51CTO博客,原文链接:http://blog.51cto.com/12902932/1924097,如需转载请自行联系原作者

相关文章
|
2天前
|
XML 监控 安全
Spring特性之一——AOP面向切面编程
Spring特性之一——AOP面向切面编程
15 1
|
2天前
|
运维 Java 程序员
Spring5深入浅出篇:基于注解实现的AOP
# Spring5 AOP 深入理解:注解实现 本文介绍了基于注解的AOP编程步骤,包括原始对象、额外功能、切点和组装切面。步骤1-3旨在构建切面,与传统AOP相似。示例代码展示了如何使用`@Around`定义切面和执行逻辑。配置中,通过`@Aspect`和`@Around`注解定义切点,并在Spring配置中启用AOP自动代理。 进一步讨论了切点复用,避免重复代码以提高代码维护性。通过`@Pointcut`定义通用切点表达式,然后在多个通知中引用。此外,解释了AOP底层实现的两种动态代理方式:JDK动态代理和Cglib字节码增强,默认使用JDK,可通过配置切换到Cglib
|
2天前
|
JSON 前端开发 Java
【JavaEE】Spring全家桶实现AOP-统一处理
【JavaEE】Spring全家桶实现AOP-统一处理
5 0
|
2天前
|
前端开发 Java 开发者
【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用
【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用
8 0
|
2天前
|
Java Spring 容器
Spring AOP浅谈
Spring AOP浅谈
10 1
|
2天前
|
XML Java 数据格式
Spring高手之路18——从XML配置角度理解Spring AOP
本文是全面解析面向切面编程的实践指南。通过深入讲解切面、连接点、通知等关键概念,以及通过XML配置实现Spring AOP的步骤。
22 6
Spring高手之路18——从XML配置角度理解Spring AOP
|
2天前
|
XML Java 数据格式
Spring使用AOP 的其他方式
Spring使用AOP 的其他方式
16 2
|
2天前
|
XML Java 数据格式
Spring 项目如何使用AOP
Spring 项目如何使用AOP
23 2
|
2天前
|
Java 开发者 Spring
Spring AOP的切点是通过使用AspectJ的切点表达式语言来定义的。
【5月更文挑战第1天】Spring AOP的切点是通过使用AspectJ的切点表达式语言来定义的。
25 5
|
2天前
|
XML Java 数据格式
Spring AOP
【5月更文挑战第1天】Spring AOP
28 5