问题
列表项目现在问题是引用了一个第三方工具,而这个工具并没有打印日志,我想打印这个方法的的入参与返回值,注意这个方法是这个工具里面其它方法去调用的。所以入参与返回值,我是拿不到的。
尝试解决
我现在想到的办法是,用spring的aop去拦截这个方法,利用环绕增强去实现。但是发现,根本拦截不了,spring貌似只能拦截他所管理的bean的方法。
想请教有没有人实现过,打印第三方jar的日志功能,谢谢
小伙看你根骨奇佳,潜力无限,来学PHP伐。
로깅 프록시 클래스를 직접 작성한 다음 바이트코드 주입을 위해 java.lang.instrument 패키지를 사용할 수 있으며, 이는 간단하고 사용하기 쉬운 JVM 계층의 AOP와 동일합니다. .
어떻게 사용하느냐에 따라 다릅니다. 사용하는 bean 객체가 ioc 컨테이너로 관리된다면 반드시 사용할 수 있습니다aop
bean
ioc
aop
일반적으로 타사 jar에는 commons-logging 또는 slf4j 인터페이스를 사용할 수 있는 로그 구현이 있습니다. 예를 들어 slf4j를 사용하여 logback을 구현하는 경우 일반적으로 slf4j 및 logback jar를 프로젝트에 추가하는 것으로 충분합니다. 로그 구현 방법 로그 브리징 패키지를 사용합니다. 요구 사항을 충족할 수 없는 경우 jd-dui를 사용하여 디컴파일하고 jbe를 사용하여 바이트코드를 수정할 수 있습니다
아직 작동하는 것 같은 도구를 찾았는데 아직 시도해 보지는 않았지만 코드를 통해 구현하는 것이 가장 좋을 것 같습니다.
로깅 프록시 클래스를 직접 작성한 다음 바이트코드 주입을 위해 java.lang.instrument 패키지를 사용할 수 있으며, 이는 간단하고 사용하기 쉬운 JVM 계층의 AOP와 동일합니다. .
어떻게 사용하느냐에 따라 다릅니다. 사용하는
bean
객체가ioc
컨테이너로 관리된다면 반드시 사용할 수 있습니다aop
일반적으로 타사 jar에는 commons-logging 또는 slf4j 인터페이스를 사용할 수 있는 로그 구현이 있습니다. 예를 들어 slf4j를 사용하여 logback을 구현하는 경우 일반적으로 slf4j 및 logback jar를 프로젝트에 추가하는 것으로 충분합니다. 로그 구현 방법 로그 브리징 패키지를 사용합니다.
요구 사항을 충족할 수 없는 경우 jd-dui를 사용하여 디컴파일하고 jbe를 사용하여 바이트코드를 수정할 수 있습니다
아직 작동하는 것 같은 도구를 찾았는데 아직 시도해 보지는 않았지만 코드를 통해 구현하는 것이 가장 좋을 것 같습니다.