zoukankan      html  css  js  c++  java
  • springmvc配置aop

    直接看代码

    springmvc中的配置aop对 controller和它的子包进行拦截

    springmvc中的配置

    <!--xml头部配置需要有这几行代码-->
    xmlns:aop="http://www.springframework.org/schema/aop"
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    
    
    <aop:aspectj-autoproxy proxy-target-class="true" />
    <bean id="logAopAction" class="com.um.framework.baseware.webadmin.modules.controller.core.LogAopAction"/>
    <!--aop执行操作的类-->
    package com.um.framework.baseware.webadmin.modules.controller.core;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.After;
    import org.aspectj.lang.annotation.AfterReturning;
    import org.aspectj.lang.annotation.AfterThrowing;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    
    @Aspect
    public class LogAopAction {
        //配置接入点,如果不知道怎么配置,可以百度一下规则
         @Pointcut("execution(* com.um.framework.baseware.webadmin.modules.controller..*.*(..))")  
         private void anyMethod(){
             System.out.println("log记录------------------------");
         }//定义一个切入点
         
         @Before("anyMethod() && args(name)")
            public void doAccessCheck(String name){
                System.out.println(name);
                System.out.println("前置通知--------------------------");
            }
            
            @AfterReturning("anyMethod()")
            public void doAfter(){
                System.out.println("后置通知-------------------------");
            }
            
            @After("anyMethod()")
            public void after(){
                System.out.println("最终通知---------------------------");
            }
            
            @AfterThrowing("anyMethod()")
            public void doAfterThrow(){
                System.out.println("例外通知-----------------------------------");
            }
            
            @Around("anyMethod()")
            public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{
                System.out.println("进入环绕通知------------------------------");
                Object object = pjp.proceed();//执行该方法
                System.out.println("退出方法--------------------");
                return object;
            }
    }
  • 相关阅读:
    图论知识补全
    字符串
    Yii2安装搭建和将入口文件移到根目录
    yii2史上最简单式安装教程,没有之一
    如何在IIS 7.5中部署Asp.Net MVC 5的网站
    Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)
    Yii2 AR find用法 (2016-05-18 12:06:01)
    DedeCMS织梦动态分页类,datalist标签使用实例
    dedecms为后台自定义菜单的完整方法
    php和js一起实现倒计时功能
  • 原文地址:https://www.cnblogs.com/guokai870510826/p/5977948.html
Copyright © 2011-2022 走看看