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" />
同上添加切面類