이 백서의 주요 연구는 다음과 같이 Spring Boot AOP 녹음 방법의 실행 시간의 구현 코드입니다.
성능을 최적화하려면 먼저 각 방법의 실행 시간을 계산해야합니다. 메소드 전후로 로그를 직접 출력하기에는 너무 번거 롭습니다. AOP를 사용하여 시간 통계를 추가 할 수 있습니다
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-Aop </artifactid> </fectionency>
spring.aop.auto = true
spring.aop.auto 속성은 기본적으로 활성화되어 있습니다. 즉, AOP 의존성이 도입되는 한 @enableaspectjautoproxy가 기본적으로 추가되었습니다. @enableaspectjautoproxy와 같은 불필요한 정보를 추가하지 마십시오!
@component@public class logaSpect {private static final log = logfactory.getLog (logaspect.class);/*** 진입 점을 정의합니다. * 설명 : * * ~ 첫 번째 *는 모든 수정 자와 반환 값을 나타냅니다. * ~ 두 번째 *는 웹 패키지 또는 서브 포장에 정의되어 있습니다 * ~ 세 번째 * 모든 방법 * ~ .. 모든 매개 변수와 일치합니다. */@pointcut ( "execution (*com.wedo.stream.service. "/t"); long start = system.currenttimeMillis (); try {object result = jointpoint.proceation (); Long End = System.CurrentTimeMillis (); log.error ( "+joint+"/tuse time : "+(종료)+"ms! "); retural e) catch (trown e) {trown end = System.CurrentTimeMillis (); log.error ( "++++++ 주변"+withpoint+"/tuse time :"+(END -START)+"MS는 예외 :"+e.getMessage ()); Throw E;}}} AOP 메소드 후 값을 올바르게 반환 할 수 없습니다
이 프록시 방법은 값을 반환해야합니다. 그렇지 않으면 코드에 반환 값이 없을 것입니다.
// 이것은 잘못된 공개 void doaround (proceedingjoinpoint joinpoint) {}입니다. Spring의 문서는 다음과 같습니다. Spring AOP 부분은 JDK Dynamic Proxy 또는 CGLIB를 사용하여 대상 객체에 대한 프록시를 만듭니다. 프록시 대상이 하나 이상의 인터페이스를 구현하면 JDK 동적 프록시가 사용됩니다. 이 대상 유형에서 구현 된 모든 인터페이스는 근접합니다. 대상 객체가 인터페이스를 구현하지 않으면 cglib 프록시가 생성됩니다.
기본값은 JDK 동적 프록시이며 CGLIB로 변경되었습니다
위는 Spring Boot AOP 녹음 방법의 실행 시간 코드 예제에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!