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