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" />

同上添加切面類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM