SpringMvc配置Aop的两种方式

Maven引入AOP依赖

    

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.8.6</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.9</version>
    </dependency>

 代码配置类配置:

  •   mvc配置类添加注解@EnableAspectJAutoProxy

  •   添加切面类

  

 /**
     * @author: dab0
     * @date:2019/5/20
     * @package:com.aspect
     **/
    @Component
    @Aspect
    public class ValidAspect {
        private ObjectError error;

        /**
         * 切点
         */
        @Pointcut("execution(public * com.controller.*.*(..))")
        public void valid() {

        }

        /**
         * @param pjp
         * @return
         */
        @Around("valid()")
        public Object around(ProceedingJoinPoint pjp) throws Throwable {
            System.out.println("方法环绕start......");
            return pjp.proceed();
        }
    }

注意:springMvc配置类中要扫描到切面类所属的包,被spring管理起来

 

 

以上切点切入目标路径为:com.controller包下的所有类的任意参数的所有任意返回值的public方法。

目录如下:

 

 

xml配置文件配置

<!-- 在springMvc.xml的配置文件中加入AOP的配置-->
<!-- AOP 注解方式 ;定义Aspect -->
    <!-- 注意!切面类需要被spring管理,激活组件扫描功能,在包"com.aspect及其子包下面自动扫描通过注解配置的组件-->
    <context:component-scan base-package="com.aspect"/>
    <!-- 启动AspectJ支持   只对扫描过的bean有效-->
    <aop:aspectj-autoproxy proxy-target-class="true" />

同上添加切面类

posted @ 2019-05-20 21:14  HaowenBi  阅读(2573)  评论(0编辑  收藏  举报