第一次AOP,附上使用DEMO,可用在简单生产环境了
demo代码如下
public class ConsoleTimeAttribute : ApectBaseAttribute
{
public override void Before(ApectContext apectContext)
{
apectContext.SetCorrelationObject(DateTime.Now);
Console.WriteLine($"Before > Method:{apectContext.MethodName} > {DateTime.Now}");
} public override void After(ApectContext apectContext)
{
Console.WriteLine($"Before > Method:{apectContext.MethodName} > {DateTime.Now}");
Console.WriteLine($"CorrelationObject > {(DateTime)apectContext.CorrelationObject}");
}
}
先是继承ApectBaseAttribute的特性类,等会用;
public interface ITest
{
[ConsoleTime]//加了特性监控
void Say(string message);
}
public class Test : ITest
{
private readonly string _init; public Test(string init)
{
_init = init;
} public void Say(string message)
{
Console.WriteLine($"init : {_init} || message : {message}");
}
}
以下开始怎么使用AOP
var type = ApectProxyBuilder.BuildType<ITest>(typeof(Test));
ITest test = (ITest) Activator.CreateInstance(type,"ok");
test.Say("说点什么");
如果配合IOC就能完美使用,记得目前还是只能提供学习,还缺少AOP代理类里执行方法有返回值的返回,还有只代理非继承接口类的AOP处理。
如果有什么疑问和不妥之处欢迎多多交流,后期会运用到生产环境
2017.2.22 已经可用在简单生产环境了,使用当中有什么疑问,可联系我,联系信息在GIT库页面上有
GIT代码地址:https://git.oschina.net/ruanjianfeng/Ruan.Framework.Core
第一次AOP,附上使用DEMO,可用在简单生产环境了的更多相关文章
- 第一次AOP,附上使用DEMO,目前只供学习,不可用在生产环境
GIT代码地址:https://git.oschina.net/ruanjianfeng/Ruan.Framework.Core demo代码如下 public class ConsoleTimeAt ...
- 基于AOP和ThreadLocal实现的一个简单Http API日志记录模块
Log4a 基于AOP和ThreadLocal实现的一个简单Http API日志记录模块 github地址 : https://github.com/EalenXie/log4a 在API每次被请求时 ...
- github上预览Demo网页最简单的方法
github上预览Demo网页最简单的方法: 1.打开你github上demo网页index.html,效果如图 2.复制上面的页面地址,然后在该地址前加上 htmlpreview.github.co ...
- 第一次有人把5G讲的这么简单明了
第一次有人把5G讲的这么简单明了 鲜枣课堂 纯洁的微笑 今天 关于5G通信,常见的文章都讲的晦涩难懂,不忍往下看,特转载一篇,用大白话实现5G入门. 简单说,5G就是第五代通信技术,主要特点是波长为毫 ...
- Spring security oauth2最简单入门环境搭建
关于OAuth2的一些简介,见我的上篇blog:http://wwwcomy.iteye.com/blog/2229889 PS:貌似内容太水直接被鹳狸猿干沉.. 友情提示 学习曲线:spring+s ...
- Spring框架-经典的案例和demo,一些可以直接用于生产,使用atomikos来处理多数据源的一致性事务等
Spring Examples Demo website:http://www.ityouknow.com/ 对Spring框架的学习,包括一些经典的案例和demo,一些可以直接用于生产. sprin ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- MySQL 系列(五) 多实例、高可用生产环境实战
MySQL 系列(五) 多实例.高可用生产环境实战 第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 史上最屌.你不知道的数据库操作 第三 ...
- kubernetes实战之consul篇及consul在windows下搭建consul简单测试环境
consul是一款服务发现中间件,1.12版本后增加servicemesh功能.consul是分布式的,可扩展的,高可用的根据官方文档介绍,目前已知最大的consul集群有5000个节点,consul ...
随机推荐
- 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)
上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...
- go语言的for循环
for循环是一个循环控制结构,可以执行指定次数的循环. 三种循环方式 第一种,常见的 for 循环,支持初始化语句 for init; condition; post { } init: 一般为赋值表 ...
- [LeetCode] Prime Palindrome 质数回文数
Find the smallest prime palindrome greater than or equal to N. Recall that a number is prime if it's ...
- 菜鸡谈OO 第一单元总结
“OOP永远是我的好朋友爸爸!” ——来自某无能狂怒的菜鸡 身处在OO的第一个摸鱼黄金周中的我,感觉到了巨大的满足感.如果写博客这种充满意义的事情可以代替我们亲爱的作业,那么我提议每周来两个:)下面开 ...
- mybatis的基本语句的应用
大家好今晚整理有关mybatis的添加删除修改更新的操作 一.select <!-- 查询学生,根据id --> <select id="getStudent" ...
- 错误提示:Dynamic Performance Tables not accessible, Automatic Statistics Disabled for this session You can disable statistics in the preference menu,or obtanin select priviliges on the v$session,v$sess
1.错误提示:Dynamic Performance Tables not accessible, Automatic Statistics Disabled for this session You ...
- Katalon Studio之接口测试中token处理
前言 最近抽时间接触了一下Katalon Studio(后面简称KS),并且利用KS做了一些接口测试的试验,感觉还不错,不过其中接口授权中缺少通过token动态验证的方案,虽然KS支持Authoriz ...
- lucene 结合数据库做搜索
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...
- Linux atop监控
200 ? "200px" : this.width)!important;} --> 介绍 atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CP ...
- 1.7 All components require plug-in?
In Android, Activity, Service, ContentProvider, and BroadcastReceiver are called as four major compo ...