- 定义切面注解
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @documented @Inherited public @interface KpiAspectAnnotation { String desc() default ""; }
- 定义切面抽象类
public abstract class AbstractAspectJ { protected Method getMethod(JoinPoint joinPoint){ MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature(); return methodSignature.getMethod(); } }
- 切面服务
@Aspect @Component public class KipServiceAspect extends AbstractAspectJ { private OpbLogger logger = OpbLogger.getLogger(KipServiceAspect.class, JdbcUtil.OSS_OFM.toUpperCase()); @Pointcut("@annotation(注解的绝对路径)") public void serviceMethodPointcut() { //切点 } @Before("serviceMethodPointcut()") public void doActionBefore(JoinPoint joinPoint){ // 获取参数 Object[] args = joinPoint.getArgs(); AbstractRequest request = (AbstractRequest) args[0]; logger.debug(request.getRequestNo()); } }
- 最后在需要做切入点的方法上加上注解
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)