• Spring的AOP简单理解


    最近在研究spring的AOP,翻译出来的意思是面向切面。

    总结如下: 
    所谓AOP就是将分散在各个方法处的公共代码提取到一处,

    并通过类似拦截器的机制实现代码的动态整合。可以简单地想象成,

    在某个方法的调用前、执行中、调用后和抛出异常时,动态插入自己的代码。 

    举个例子:A在执行银行操作,网XX行转了100到YY行,这其实是一个事务,如果中间一方发生问题,肯定会整体回滚,变为XX行不少100,YY行没多100的状态,这样才是正确的,可是在这整个事务中,我想知道中间的状态咋办,这时候就需要切面了,比如我想在XX行转了100时候就给一个单独的事务进行提交,记录XX行的状态,这时候就等于其实切开了一个事务。在一个事务中,提交另一个事务。

    例子2:假如项目需要是这样的,需要你去记录用户在后台的每一个操作,难道你还去在增删查改的方法中,每个方法都去加入一个insert into 方法不成?那代码量可以说就是非常的惊人了,所以这里AOP就可以完美的代替了,只需要定义好切入点就可以在同一的地方进行管理。

    以上便是个人对AOP的理解。

    在spring.xml中配置

        <aop:config proxy-target-class="true">
            <!-- define the method that required transactionManager -->
            <aop:pointcut id="serviceMethods"
                expression="execution(public * jp..*.service..*.newTransaction*(..))" />
            <!-- define txAdvice -->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods" />
        </aop:config>

    就能够对名为

    newTransaction× 的方法名实现切面过程,在整个事务提交之前,率先提交。
  • 相关阅读:
    通过注册表获取计算机相关信息
    GetTickCount()函数
    SystemInfo获取计算机相关信息
    CriticalSection 临界区
    mysql慢查询问题
    mysql show processlist详解
    nginx及php版本号隐藏
    安装psutil模块报错&安装python-devel
    ubuntu ssh重启
    php-fpm配置优化
  • 原文地址:https://www.cnblogs.com/sunxun/p/6552726.html
Copyright © 2020-2023  润新知