spring.net aop 讲解
spring.net aop几个术语:
切面:针对类
切点:针对方法
object.xml
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:aop="http://www.springframework.net/aop"> <object id="user" type="TestAop.User" ></object> <object id="newUser" type="TestAop.NewUser" ></object> <object id="advisor" type="TestAop.Advisor"></object> <aop:config>
<aop:advisor pointcut-ref="pointcut" advice-ref="advisor"/>
</aop:config> <object id="pointcut" type="Spring.Aop.Support.SdkRegularExpressionMethodPointcut, Spring.Aop">
<property name="pattern" value="TestAop.User.Whoami"/>
</object>
</objects>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestAop
{
public class Advisor : AopAlliance.Intercept.IMethodInterceptor
{ public object Invoke(AopAlliance.Intercept.IMethodInvocation invocation)
{
NewUser newUser = new NewUser();
newUser.BeforeWhoami();
var result = invocation.Proceed();
newUser.AfterWhoami();
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestAop
{
public class NewUser
{
public void BeforeWhoami()
{
Console.WriteLine("I am before");
} public void AfterWhoami()
{
Console.WriteLine("I am after");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestAop
{ public interface IUser
{
void Whoami();
}
public class User:IUser
{
public void Whoami()
{
Console.WriteLine("I am zhangwei");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestAop
{
class Program
{
static void Main(string[] args)
{
Spring.Context.IApplicationContext context
= new Spring.Context.Support.XmlApplicationContext("objects.xml");
IUser user = context.GetObject("user") as IUser;
user.Whoami();
Console.ReadKey();
}
}
}
运行:
spring.net aop 讲解的更多相关文章
- Spring框架(4)---AOP讲解铺垫
AOP讲解铺垫 不得不说,刚开始去理解这个Aop是有点难理解的,主要还是新的概念比较多,对于初学者一下子不一定马上能够快速吸收,所以我先对什么事Aop做一个解释: 首先说明:本文不是自己所写 ...
- Spring基于AOP的事务管理
Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...
- spring的AOP
最近公司项目中需要添加一个日志记录功能,就是可以清楚的看到谁在什么时间做了什么事情,因为项目已经运行很长时间,这个最初没有开来进来,所以就用spring的面向切面编程来实现这个功能.在做的时候对spr ...
- spring(二) AOP之AspectJ框架的使用
前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以 ...
- Spring中AOP简介与切面编程的使用
Spring中AOP简介与使用 什么是AOP? Aspect Oriented Programming(AOP),多译作 "面向切面编程",也就是说,对一段程序,从侧面插入,进行操 ...
- 02 浅析Spring的AOP(面向切面编程)
1.关于AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.O ...
- Spring【AOP模块】就是这么简单
前言 到目前为止,已经简单学习了Spring的Core模块.....于是我们就开启了Spring的AOP模块了...在讲解AOP模块之前,首先我们来讲解一下cglib代理.以及怎么手动实现AOP编程 ...
- Spring基础篇——Spring的AOP切面编程
一 基本理解 AOP,面向切面编程,作为Spring的核心思想之一,度娘上有太多的教程啊.解释啊,但博主还是要自己按照自己的思路和理解再来阐释一下.原因很简单,别人的思想终究是别人的,自己的理解才是 ...
- spring框架 AOP核心详解
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
随机推荐
- 新浪行情 vb代码
Sub 新浪行情() Cells.Clear Dim n As Integer, Js As Object Dim i As Integer, j As Integer, m As Integer, ...
- Android图片加载框架最全解析(五),Glide强大的图片变换功能
大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...
- maven生命周期(lifecycle)—— maven权威指南学习笔记(四)
定义: 生命周期是包含在一个项目构建中的一系列有序的阶段 举个例子来说就是maven 对一个工程进行: 验证(validate) …… 编译源码(compile) …… 编译测试源码(test-com ...
- Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题
Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- 使用jquery操作iframe
1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe id="mainiframe ...
- C语言:内存的分配与管理
1.内存区域的划分标准: 代码段 存储代码 数据段 静态/全局数据.常量(const) 堆区(heap) 动态内存分配(更 ...
- " 初窥 " nginx
1. 无题 第一次听到Nginx这个词,还是两年前的事儿了,最近常逛CSDN,越来越频繁的接触到这个词汇,今天看了些资料,简单的总结下,作为入门. 2. 背景介绍: Nginx (发音同 engine ...
- iOS开发-简单的图片查看器
现在你只要拿着手机,不管你Android还是iOS,新闻类的App不可避免都有一个功能就是图片查看,做个专题,查看一下内容,App Store中也有专门针对图片浏览的App,鉴于目前所知有限,无法做到 ...
- JavaScript字符串数组拼接的性能测试及优化方法
传统上,字符串连接一直是js中性能最低的操作之一. var text="Hello"; text+=" World!"; 早期浏览器没有对这种运算进行优化.由于 ...
- Java基础(九):抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外, ...