1
즉석에서 계측을 구현해야하는 기술은 무엇입니까? 지금까지, 나는 바이트 코드 계측을위한 aspectj와 javassits에 대해 연구했다.즉시 바이트 코드 계측을 실현하는 방법
즉석에서 계측을 구현해야하는 기술은 무엇입니까? 지금까지, 나는 바이트 코드 계측을위한 aspectj와 javassits에 대해 연구했다.즉시 바이트 코드 계측을 실현하는 방법
내 라이브러리 Byte Buddy을 사용하면 자바의 클래스 로딩 절차에 따라 쉽게 Java 에이전트를 정의 할 수 있습니다.
일반적으로 어떤 접근 방식이 가장 적합한 지 결정하기 위해 수행해야하는 작업에 따라 다릅니다. Javassist와 Byte Buddy는 런타임에 작동합니다. AspectJ는 많은 사람들이 무거운 무게를 고려하는 컴파일러를 필요로한다. Byte Buddy에 대한 자습서는 the webpage을보십시오.
나는이 질문을 너무 광범위하게 (그리고 내가 투표 한 유일한 사람이 아니기 때문에) 닫도록 투표했다. BTW, Vimlesh, AspectJ 장비는 LTW를 통해 즉석에서 작동합니다. 또한 직조 에이전트없이 런타임 중에 수동으로 수행 할 수있는 API도 있습니다. – kriegaex
먼저 클래스의 바이트 코드를 처리하는 방법 (바이트 코드 조작이라고도 함)을 원하는지 또는 클래스를 즉시 업데이트하는 방법 (Instrumentation이라고도 함)을 알고 싶은지 또는 둘 다 제공하는 라이브러리를 검색하는지 여부를 결정해야합니다 함께. 그리고 나서 우리는 튜토리얼이나 도서관 검색 시설이 아니기 때문에 이러한 모든 질문이 주제와 관련이 없다고 생각할 수 있습니다. – Holger
Holger, 여기 '진행중인 계측'은 프로세스가 실행 중일 때 이미 계측 된 코드를 변경하는 것을 의미합니다. 예를 들어 System이 올라 오면 com.foo.bar .. * 패키지를 만들었고 런타임에 프로세스가 실행 중일 때 com.foo.weaveme .. *에 웨이브를 추가하고 com.foo의 위빙을 제거하려고합니다 .바..*. pocess를 다시 시작하지 않고 직조해야합니다. –