AOP的实现方式

AOP在代码中的实现方式有三种:

1.采用spring的原生API进行实现

先定义通知类:

after通知类型的通知类实现AfterRuturnAdvice接口,实现内部的方法,在方法中加入你要通知的操作

before通知类型的通知类实现MethodBeforeAdvice接口,实现内部的方法,在方法中加入你要通知的操作

还有其他的通知类型就不一一列举了,之后便是在application配置文件中声明通知类bean、插入类bean,配置切入点、通知

然后,当你运行被切入的类的切入点方法时,前置通知和后置通知都会执行。

2.不定义通知类,因为每一个通知都要创建一个类太麻烦。第二种方法定义切面类,然后在application配置文件中进行配置

先创建一个切面类,再在切面类中创建你要插入的通知方法

如:

然后在配置文件中进行配置

<!-- 目标对象--->
    <bean id="target" class="com.hzd.aop.Method"/>
<!--    切面对象-->
    <bean id="myAspect" class="com.hzd.aop.Aspect"/>
<!--    配置织入,告诉spring框架 哪些方法需要进行哪些增强(前置、后置),需要引入aop命名空间-->
    <aop:config>
<!--        声明切面-->
        <aop:aspect ref="Aspect">
<!--            抽取切点表达式-->
            <aop:pointcut id="myPonintcut" expression="execution(public void com.hzd.aop.Method.method())"/>
<!--            切面,切点和通知-->
            <aop:before method="before" pointcut-ref="myPonintcut"></aop:before>
            <aop:after-returning method="after" pointcut-ref="myPonintcut"></aop:after-returning>
            <aop:around method="around" pointcut-ref="myPonintcut"></aop:around>

        </aop:aspect>
    </aop:config>

 第三种:用注释配置切面类、通知、切入点

@component 注解:将该类声明进入spring容器中

@Aspect:声明是一个切面类bean,而不是普通bean

@before(切面点)修饰方法:表面这是一个前置方法

@After(切面点)声明这是一个后置方法

@Pointcut 声明这是一个切点表达式方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值