spring揭秘07-aop01-aop基本要素及代理模式3种实现
// 引入Spring框架相关类
import org.springframework.aop.MethodBeforeAdvice;
import org.springframework.aop.framework.ProxyFactory;
import java.lang.reflect.Method;
public class BeforeAdviceExample implements MethodBeforeAdvice {
// 实现前置通知的逻辑
@Override
public void before(Method method, Object[] args, Object target) throws Throwable {
System.out.println("Before: 执行方法 " + method.getName());
}
public static void main(String[] args) {
BeforeAdviceExample advice = new BeforeAdviceExample();
// 创建代理工厂
ProxyFactory proxyFactory = new ProxyFactory();
// 设置代理目标接口
proxyFactory.setInterfaces(TargetInterface.class);
// 添加通知
proxyFactory.addAdvice(advice);
// 创建代理实例
TargetInterface proxy = (TargetInterface) proxyFactory.getProxy();
// 通过代理实例调用目标方法
proxy.targetMethod();
}
}
interface TargetInterface {
void targetMethod();
}
class Target implements TargetInterface {
@Override
public void targetMethod() {
System.out.println("Target: targetMethod");
}
}
这个代码示例展示了如何使用Spring框架中的ProxyFactory
类来创建一个基于接口的代理对象,并应用了MethodBeforeAdvice
通知。当调用代理对象的方法时,会在目标方法执行前打印出一条消息。这是AOP(面向切面编程)的一个简单示例,展示了如何在不修改原始类的情况下增加额外的行为。
评论已关闭