JAVA面向切面编程(AOP)实例

JAVA面向切面编程(AOP)实例,第1张

JAVA面向切面编程(AOP)实例
  • 定义切面注解
@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());
    }
}
  • 最后在需要做切入点的方法上加上注解

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5572816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存