Spring AOP动态代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring AOP动态代理相关的知识,希望对你有一定的参考价值。

出现org.springframework.aop.framework.ProxyFactoryBean cannot be cast to 错误

  在类型转换的时候, 调用getObject()方法,再对ProxyFactoryBean进行转换

xml文件

  <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy><!--使用cglib动态代理-->
    <bean id="greetingProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="interfaces" value="xxxx"></property><!--代理接口-->
        <property name="target" ref="xxxx"></property><!--接口的实现类-->
        <property name="interceptorNames" value="greetingAroundAdvice"></property><!--引入增强-->
    </bean>

 环绕增强类:

@Aspect
@Component
public class GreetingAroundAdvice implements MethodInterceptor{

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        before();
        Object result = invocation.proceed();
        after();
        return result;
    }
    private void before() {
        System.out.println("before");
    }
    
    private void after() {
        System.out.println("after");
    }

}

 

以上是关于Spring AOP动态代理的主要内容,如果未能解决你的问题,请参考以下文章

详解 spring AOP 动态代理

Spring5学习笔记 — “Spring AOP底层原理(动态代理)”

Spring5学习笔记 — “Spring AOP底层原理(动态代理)”

Spring总结七:AOP动态代理的实现

Spring AOP详解 JDK动态代理CGLib动态代理

Spring AOP之 动态代理实例