在上一篇文章中,我们讲述了利用Java的反射机制中实现Spring中的IOC,在本文中,我们将更进一步,讲述用Java的反射和动态代理机制来实现Spring的AOP
一.AOP概述 AOP(Aspect Oriented Programing),即面向切面编程,它主要用于日志记录、性能统计、安全控制、事务处理、异常处理等方面
它的主要意图就要将日志记录,性能统计,安全控制、事务处理、异常处理等等代码从业务逻辑代码中清楚地划分出来
通过对这些行为的分离,我们希望可以将它们独立地配置到业务逻辑方法中,而要改变这些行为的时候也不需要影响到业务逻辑方法代码
下面让我们来看一个利用AOP来实现日志记录的例子,在没有使用AOP之前,我们的代码如下面所讲述
下面这段代码为业务的接口类代码: package org
proxy; /** * 业务逻辑类接口
* @author AmigoXie * Creation date: 2007-10-7 - 上午 09:09:53 */ public interface BusinessObj { /** * 执行业务
*/ public void process(); } BusinessObj接口的某个实现类代码如下: package org
proxy; /** * 业务逻辑对象实现类
* @author AmigoXie * Creation date: 2007-10-7 - 上午 09:11:49 */ public class BusinessObjImpl implements BusinessObj { /** * 执行业务
*/ public void process() { try { System
println("before process"); System