spring aop的使用

AOP使用

AOP配置方式

方式1 原生Spring API接口

<!-- 注册bean -->
<bean id ="userService" class="com.lwp.study.blog.service.impl.UserServiceImpl" />
<bean id ="logAfterAdvice" class="com.lwp.study.proxy.log.LogAfterAdvice" />
<bean id ="logBeforeAdvice" class="com.lwp.study.proxy.log.LogBeforeAdvice" />

<aop:config>
    <!-- 配置切入点规则 UserServiceImpl类的所有方法将被切入-->
    <aop:pointcut id="servicePointcut" expression="execution(public * com.lwp.study.blog.service.impl.UserServiceImpl.*(..))" />
    
    <!--执行切入-->
    <aop:advisor advice-ref="logAfterAdvice" pointcut-ref="servicePointcut" />
    <aop:advisor advice-ref="logBeforeAdvice" pointcut-ref="servicePointcut" />
</aop:config>

方式2 自定义类实现

配置部分

<!-- 注册自定义的类 -->
<bean id ="customAdvice" class="com.lwp.study.proxy.log.CustomAdvice" />

<aop:config>
	<!--自定义切面,red引用自定义的切面类-->
    <aop:aspect red="customAdvice">
    	<!-- 配置切入点规则 UserServiceImpl类的所有方法将被切入-->
    	<aop:pointcut id="pointcut" expression="execution(public * 			com.lwp.study.blog.service.impl.UserServiceImpl.*(..))" >
        </aop:pointcut>
        <!--执行切入的方法-->
        <aop:before method="before" pointcut-ref="pointcut" />  <!--方法执行前切入-->
        <aop:after method="after" pointcut-ref="pointcut" />    <!--方法执行后切入-->
    </aop:aspect>
</aop:config>

类部分

package com.lwp.study.proxy.log;

public class CustomAdvice {
    public void before(){
        System.out.println("方法执行之前");
    }

    public void after(){
        System.out.println("方法执行之后");
    }
}

posted @ 2021-07-24 16:32  幸运刘  阅读(33)  评论(0)    收藏  举报