ByteBuddy를 사용하여이 클래스에 메소드 인터셉터를 추가하기 위해 동적으로 하위 클래스를 만듭니다. 지금까지 모든 것이 작동하지만 ByteBuddy는 모든 메서드에 대해 final
접근 자 메서드를 만듭니다. 지금은 봄과 함께 ByteBuddy을 사용할 때 난 내가 봄 로그 수준을 거절 할 수 있다는 것을 알고 형태최종 접근 자 메서드의 생성을 피하십시오.
[main] INFO org.springframework.aop.framework.CglibAopProxy - Unable to proxy method [final void com.tngtech.jgiven.integration.spring.test.proxy.GivenTestStageWithAspect$ByteBuddy$aMzxnEax.should_say_hello$accessor$7OjlyLlO()] because it is final: All calls to this method via a proxy will NOT be routed to the target instance.
의 메시지의 톤을 얻을. 그러나 라이브러리를 개발할 때 라이브러리의 모든 사용자는 내가 피하고 싶은 Spring 로그 설정을 변경해야합니다. 그래서 문제는 접근 자의 생성을 피할 수 있는지 또는 ByteBuddy가 이들을 만들지 않도록 구성 할 수 있는지 여부입니다. final
.
나는 mockito 프레임 워크의 ByteBuddy를 알고 있습니다. https://github.com/raphw/byte-buddy/issues/3와 raphw가 제공하는 링크 –
을 참조하십시오. Spring을 사용할 때 ByteBuddy를 사용하여 인터셉터를 추가하는 이유는 무엇입니까? 그걸 위해 [Spring AOP] (https://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html)를 사용하는 것이 더 좋지 않습니까? – Andreas
라이브러리를 개발할 때 Spring을 직접 사용하지 않습니다. 이 문제는 라이브러리가 Spring 애플리케이션의 컨텍스트에서 사용될 때만 발생한다. –