라는 건 이미 레퍼런스에도 명시되어 있습니다. 그렇기 때문에 아래와 같이 사용법에 있어서 공통점이 존재하는 것 같습니다.

Spring에서 AOP를 사용법을 구분하는 여러 구분자가 있을 수 있겠지만 간단한 declarative 하느냐 programmatically 하느냐로 나눌 수도 있겠습니다.

Spring에서 트랜잭션 관리도 마찬가지로 선언적인 방법과 프로그래밍을 통한 방법으로 나뉩니다.

Spring AOP 사용 방법 중 declarative 한 방법은 다시 어노테이션을 사용하는 방법(@AspectJ)과
XML 설정(Schema-based Spring AOP)을 사용하는 방법으로 나눌 수 있습니다.

Spring 트랜잭션 역시 어노테이션을 사용하는 방법(@Transactional)과 XML 설정(Schema-based Spring AOP를 사용한 예제)을 사용하는 방법으로 나눌 수 있습니다.

그런데 막상 적어 놓고 보니까 이런 비교는 좀 무의미 한 것 같네요. 이렇게 사용 방법이 똑같이 생긴게 어쩌면 당연한거 겠죠?

A U B = A 인데 A 와 B 를 비교하다니;;; 흠..