2016-12-27 1 views

답변

2

ASM은 기존 바이트 코드를 조작하거나 새 바이트 코드를 쉽게 생성 할 수있는 API를 제공하는 프레임 워크/라이브러리입니다.

반면에 AspectJ는 aspect와 관련된 프로그래밍 개념으로 Java 런타임의 기능을 확장하기 위해 특별히 고안된 자체 구문을 사용하여 Java 언어 상단의 언어 확장 기능을 제공합니다. 여기에는 컴파일 시간 또는 런타임에 실행될 수있는 컴파일러/위버가 포함됩니다.

그들은 기존의 바이트 코드의 바이트 코드 조작 및/또는 새로운 바이트 코드 생성으로 목표를 달성한다는 점에서 비슷합니다.

ASM은 기존 바이트 코드를 수정하는 방법에 대한 의견이 없기 때문에 더 일반적입니다. API 만 제공하므로 원하는대로 할 수 있습니다. 반면에 AspectJ는 더 구체적이고 범위가 좁으며 미리 정의 된 몇 가지 AOP 구조체 만 지원한다.하지만 aspectj 언어를 사용하면 훨씬 쉽게 작업 할 수있다. 당신을 제공합니다.

내가 본 대부분의 경우, AspectJ는 충분하지만 드문 경우에는 ASM이 좋은 대안이 될 수 있지만 비슷한 결과를 얻기 위해서는 더 많은 프로그래밍 작업이 필요하다. .

관련 문제