博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring.NET的AOP怎么玩
阅读量:7235 次
发布时间:2019-06-29

本文共 1184 字,大约阅读时间需要 3 分钟。

之前公司一直不让使用第三方组件,因此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应用切入点:可以控制为方法级别的粒度,实际中最常用,这儿介绍配置的方式。

consoleLoggingAroundAdvice

  • 接下来介绍其他的拦截器

 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,如需转载请自行联系原作者

你可能感兴趣的文章
js中#代表什么
查看>>
MySQL中的RAND()函数使用详解(order by rand() 随机查询取前几条记录)
查看>>
PHP7运行环境搭建(Windows7)
查看>>
Ubuntu扩展系统盘容量,虚拟机下
查看>>
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系...
查看>>
Java并发编程的艺术(二)——重排序
查看>>
php Restful设计
查看>>
A very simple C++ module to encrypt/decrypt strings based on B64 and Vigenere ciper.
查看>>
git 合并子分支
查看>>
git基本操作:上传代码
查看>>
vs2017创建支持多框架(net4.6.1;net4.6.2;netstandard2.0;netcoreapp2.0)版本
查看>>
nginx 服务器常见配置以及负载均衡
查看>>
ES6 class setTimeout promise async/await 测试Demo
查看>>
Glace:generator-jhipster, adding User entity enhancement management
查看>>
SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
查看>>
9 CSS in JS Libraries You Should Know in 2018
查看>>
webstorm 设置js或者html文件自动缩进为4个空格不生效
查看>>
IntelliJ IDEA创建maven多模块项目
查看>>
108. 将有序数组转换为二叉搜索树
查看>>
DBeaver连接MySQL 8.0显示"Unable to load authentication plugin 'caching_sha2_password'."错误的问题...
查看>>