Spring Boot AOP 인 스 턴 스 분석 을 어떻게 사용 합 니까?

2539 단어 SpringBootAOP
AOP 는 개발 에 있어 서 용도 가 매우 넓다.그의 디자인 모델 은 대리 모델 이 고 그 안의 원칙 은 소스 코드 를 바 꾸 지 않 는 토대 에서 새로운 기능 을 추가 하 는 것 이다.예 를 들 어 프로젝트 가 출시 되 었 지만 프로젝트 의 한 모듈 이 느리게 작 동 하 는 것 을 발 견 했 습 니 다.이 럴 때 로 그 를 인쇄 해서 확인 해 야 합 니 다.그러면 AOP 를 사용 하여 코드 를 프로젝트 에 동적 으로 삽입 할 수 있 습 니 다.검 측 이 완료 되면 제거 하면 됩 니 다.
스프링 부츠 에서 어떻게 사용 하 는 지 살 펴 보 자.

package com.zl.aop.component;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
//        
@Component
//        
@Aspect
public class LogComponent {
  //         *         
  //com.zl.aop.Service.*.*    :               ,
  //(..)      ,
  @Pointcut("execution(* com.zl.aop.Service.*.*(..))")
  public void pc(){
  }
  //    
  @Before(value ="pc()")
  public void before(JoinPoint jp){
    //name     Service     
    String name = jp.getSignature().getName();
    System.out.println("before:"+name);
  }
  //    
  @After(value ="pc()")
  public void after(JoinPoint jp){
    //name     Service     
    String name = jp.getSignature().getName();
    System.out.println("after:"+name);
  }
  //    (            )
  @AfterReturning(value ="pc()",returning = "result")
  public void afterReturning(JoinPoint jp,Object result){
    //name     Service     
    String name = jp.getSignature().getName();
    System.out.println("afterReturning:"+name+"---"+result);
  }
  //    
  @AfterThrowing(value ="pc()",throwing = "e")
  public void afterThrowing(JoinPoint jp,Exception e){
    //name     Service     
    String name = jp.getSignature().getName();
    System.out.println("afterThrowing:"+name+"---"+e);
  }
  //    (           )
  @Around(value ="pc()")
  public Object arount(ProceedingJoinPoint pjp) throws Throwable {
    //proceed  Service       
    Object proceed = pjp.proceed();
    //  return             
    return proceed+"java";
  }
}
하나의 구성 요 소 를 정의 하여 Service 의 방법 을 가 져 오고 처리 하 는 것 입 니 다.
실행 결 과 를 보십시오.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기