源码教程 2025年06月7日
0 收藏 0 点赞 950 浏览 1841 个字
摘要 :

Spring AOP切面,当我们使用AOP时,大部分时候我们使用的是其声明式事务管理的功能,可以很便捷的为我们提供事物的控制,但很多时候,除事物控制外,我们还希望做更多的……

Spring AOP切面,当我们使用AOP时,大部分时候我们使用的是其声明式事务管理的功能,可以很便捷的为我们提供事物的控制,但很多时候,除事物控制外,我们还希望做更多的操作,例如权限控制、日志记录、失败后数据记录等等,这时我们可以自定义切面,并自己实现一个切面的实现类,去实现我们自己的业务规则。

本文中Spring版本为2.5。

Demo

applicationContext.xml:

<bean id="ActionInitInterceptor"
        class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <property name="patterns">
             <list>
                <value>.*Action..*</value>
            </list>
        </property>
        <property name="advice">
            <bean
                class="com.action.advice.ActionInitInterceptor" />
        </property>
</bean>

首先,我们定义了一个切面,同时指定了切面的处理类,需要注意的是,切面的property必须命名为patterns,切面的处理类的property必须命名为advice。

ActionInitInterceptor.java:

public class ActionInitInterceptor implements MethodBeforeAdvice {
    public void before(Method method, Object[] aobj, Object obj)
            throws Throwable {
        log.info("业务信息:现在开始初始化业务信息");
        //dosometing.....
    }
}

在切面类中,我们需要实现Spring的 MethodBeforeAdvice 的接口,同时重写其before()方法,这意味这在我们在切面的方法之前就可以做一些我们自己的业务控制。

除此之外,我们还可以在切面的不同状态进行控制。

public class ActionTransactionInterceptor implements MethodInterceptor {
    public Object invoke(MethodInvocation methodInvocation) throws Throwable {
        Object tx = null;

        log.info("业务信息:启动事务");
        //dosometing.....
        return tx;
    }
}

实现Spring 的 MethodInterceptor ,实现其 invoke 方法可以在切面切入的类执行时进行监控。

public class TracingAfterAdvice implements AfterReturningAdvice{  
    public void afterReturning(Object object,  
                             Method m,   
                             Object[] args,   
                             Object target)   
                             throws Throwable {  
        //dosometing.....
    }  
}

实现Spring 的 AfterReturningAdvice,实现其 afterReturning方法可以在切面切入的类执行完成后写入业务逻辑。

使用AOP,我们可以的便捷的对项目进行监控,在不影响原有业务逻辑的情况下进行特定业务逻辑的操作。

原文链接:https://blog.csdn.net/wtopps/java/article/details/53018632

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/342.html

管理员

相关推荐
2025-07-05

对于一些使用WordPress进行外贸建站的商家来说,大部分人会通过在WordPress中添加JS代码和CSS样式表…

701
2025-07-05

当商家遇到WordPress独立站改版或者域名到期等问题时,不免会涉及到WordPress域名的更改,那么这一…

715
2025-07-05

用户在使用WooCommerce进行跨境电商独立站搭建工作时,有可能会借助WooCommerce短代码实现更加醒目…

307
2025-07-05

随着外贸建站行业的不断深入发展,WordPress的多语言功能也显得越来越重要,一个具有多语言的独立站…

1,039
2025-07-05

WooCommerce作为WordPress外贸建站生态的一部分,WooCommerce运费设置是商家在建站过程中不可忽视的…

835
2025-07-05

在外贸建站的过程中,有些商家会选择使用WordPress幻灯片为网站页面增加一定的动感和可观性,进而提…

723
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号