当前位置:   article > 正文

SpringAOP原理_如何理解springaop原理

如何理解springaop原理

一、AOP(Aspect Oriented Programming)原理解析

1、概念:面向切面编程(横切)
2、理解:在不改变主线代码的情况下添加一些支线业务代码
3、应用:a.添加支线业务。b.类方法功能增强。

在这里插入图片描述

二、SpringAOP配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!--配置QueryRunner对象-->
    <bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner"></bean>

    <!--配置数据访问层对象-->
    <bean id="accountDao" class="com.mollen.dao.impl.AccountDaoImpl">
        <property name="queryRunner" ref="queryRunner"></property>
    </bean>

    <!--配置Spring的AOP-->
    <!--真实对象/目标对象-->
    <bean id="accountService" class="com.mollen.service.impl.AccountServiceImpl">
        <property name="accountDao" ref="accountDao"></property>
    </bean>

    <!--增强类-->
    <bean id="transactionManger" class="com.mollen.utils.TransactionManger"></bean>

    <!--配置AOP-->
    <aop:config>
        <!--配置切面-->
        <aop:aspect id="txAspect" ref="transactionManger">
            <aop:pointcut id="txPointcut" expression="execution(* com.mollen.service.impl.AccountServiceImpl.transfer(..))"></aop:pointcut>
            <!--配置通知-->
            <!--前置通知:开启事物-->
            <aop:before method="startTransaction" pointcut-ref="txPointcut"></aop:before>
            <!--后置通知,提交事物-->
            <aop:after-returning method="commitTransaction" pointcut-ref="txPointcut"></aop:after-returning>
            <!--异常通知,回滚事物-->
            <aop:after-throwing method="rollbackTransaction" pointcut-ref="txPointcut"></aop:after-throwing>
            <!--最终通知,是否资源-->
            <aop:after method="release" pointcut-ref="txPointcut"></aop:after>
        </aop:aspect>
    </aop:config>

</beans>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

原文:https://blog.csdn.net/mollen/article/details/83856230

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/647751
推荐阅读
相关标签