1234567891011121314151617181920212223242526272829303132333435363738 |
- package com.sf.aop.advisor;
- import org.springframework.aop.MethodMatcher;
- import java.lang.reflect.Method;
- // 在方法级别的拦截
- // 使用接口 MethodMatcher
- // 在实现方法中 判断是否要拦截
- public class EatMethodMatcher implements MethodMatcher {
- /**
- * 监控接口比如BaseService,没有重载方法,每一个方法名称都是唯一的,
- * 此时采用 static 检测方式,只根据方法名称来进行判断,如果有重载方法,
- * 可以使用下方的 matches() 方法
- * 业务:只想对 Person 类中的 eat() 方法提供织入
- *
- * @param method 接口中的某一个方法
- * @param targetClass 接口中的实现类
- * @return
- */
- @Override
- public boolean matches(Method method, Class<?> targetClass) {
- String methodName = method.getName();
- if ("eat".equals(methodName)) {
- return true;
- }
- return false;
- }
- @Override
- public boolean isRuntime() {
- return false;
- }
- @Override
- public boolean matches(Method method, Class<?> targetClass, Object... args) {
- return false;
- }
- }
|