AOP实现原理
Spring 为解耦而生,其中AOP(面向切面编程)是很浓重的一笔。 本文来探讨一下AOP实现的原理。 一. 概述 代理模式 是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理 :由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理 :在程序运行时,运用反射机制动态创建而成。 另外还有 Cglib动态代理 ,它是针对类实现的代理。 二. 静态代理 1. Count.java 1 /** 2 * 定义一个账户接口 3 */ 4 public interface Count { 5 // 查看账户方法 6 public void queryCount(); 7 8 // 修改账户方法 9 public void updateCount(); 10 } 2. CountImpl.java 1 import net.battier.dao.Count; 2 /** 3 * 委托类(包含业务逻辑) 4 *