一. 说明
- Java Spring中使用AOP可以很方便的生成代理对象,从而添加自定义逻辑。
- 本文介绍如何调用代理对象的原始方法,而非代理后的方法
二. 原始类
@Component
public class AopTestClass {
public void method1() {
System.out.println("method1 execute");
}
}
三. 系统启动时生成代理对象
- proxyMethod:对指定方法添加前后逻辑,生成代理方法
- 代理对象根据原始对象是否有接口,使用JDK或CGLib动态代理
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AopTestClassProxy implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
return o;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
if (beanName.cont